【问题标题】:DATE FORMAT :DB2 _ SQL日期格式:DB2 _ SQL
【发布时间】:2021-11-04 18:06:34
【问题描述】:

我有日期格式 (TIMESTAMP),例如 2018-03-26-08.30.00.000000,我想得到它作为 2018-03-26-08 我如何在 DB2 中的 sql 中做到这一点(只是我想要年月-day-hour )'

【问题讨论】:

    标签: sql db2


    【解决方案1】:

    阅读 DB2 的手册: https://www.ibm.com/docs/en/db2-for-zos/12?topic=sf-char

    使用该文档:

    1. 我需要使用 TO_TIMESTAMP() 将非标准格式转换为时间戳,在日期和小时之间使用破折号,将点作为小时/分钟和分钟/秒分隔符。
    2. 从获得的时间戳中,我可以使用带有格式字符串的TO_CHAR() 来返回我想要的格式的字符串。
    WITH
    indata(ts) AS (
      SELECT 
        TO_TIMESTAMP(
         '2018-03-26-08.30.00.000000','YYYY-MM-DD-HH24.MI.SS.US'
        ) 
      FROM sysibm.sysdummy1
    )
    SELECT TO_CHAR(ts,'YYYY-MM-DD-HH24') AS new_format FROM indata;
      new_format    
    ---------------
     2018-03-26-08
    

    【讨论】:

      【解决方案2】:
      VARCHAR_FORMAT(<timestamp>, '<desired format>')
      

      所以:

      SELECT VARCHAR_FORMAT(CURRENT TIMESTAMP, 'YYYY-MM-DD-hh24')
      FROM SYSIBM.SYSDUMMY1
      

      【讨论】:

        猜你喜欢
        • 2012-05-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-21
        • 1970-01-01
        相关资源
        最近更新 更多