格式化日期为2017-06-21T12:33:47.879格式

问题描述

数据库中,我拥有TIMESTAMP这样的17/06/21 12:33:47,879000000数据类型,并且我想选择2017-06-21T12:33:47.879格式的

编辑: 我尝试过to_char(MODIFIED_TIME,'YYYY-MM-DD HH:MI:SS:FF')但得到了

2010-11-12 11:47:50:294000。如何添加这个“ T”并在毫秒结束时削减这些'0'

解决方法

您可以使用这样的格式模型:

SELECT TO_CHAR( systimestamp,'yyyy-mm-dd"T"HH24:MI:SS.FF') AS ts
  FROM dual;

 TS
 -----------------------
 2020-08-26T09:51:25.600016

SELECT TO_CHAR( timestamp'2017-06-21 12:33:47.879000000','yyyy-mm-dd"T"HH24:MI:SS.FF' )  
    AS ts
  FROM dual;

 TS
 -----------------------
 2017-06-21T12:33:47.879000000

一个特殊的日期和时间。

替代使用

SELECT TO_CHAR( timestamp'2017-06-21 12:33:47.879000000','yyyy-mm-dd"T"HH24:MI:SS.FF3' ) AS ts,CAST( timestamp'2017-06-21 12:33:47.879000000' AS TIMESTAMP(3) ) As ts2
  FROM dual;

 TS                        TS2
 -----------------------   -----------------------
 2017-06-21T12:33:47.879   2017-06-21T12:33:47.879

将毫秒部分的精度设置为3