【问题标题】: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

    【讨论】:

    • 有没有可能在毫秒结束时去掉这些“0”?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-27
    • 2018-05-21
    • 2018-01-07
    • 2016-12-07
    • 2022-06-27
    相关资源
    最近更新 更多