【问题标题】:Formatting date to 2017-06-21T12:33:47.879 format将日期格式化为 2017-06-21T12:33:47.879 格式
【发布时间】:2020-08-26 06:27:01
【问题描述】:
在 DB 中,我有 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'?
【问题讨论】:
标签:
sql
oracle
sqldatetime
【解决方案1】:
你可以使用这样的格式化模型:
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。