【问题标题】:how to convert last_day format to ddmmyyyy in DB2如何在 DB2 中将 last_day 格式转换为 ddmmyyyy
【发布时间】:2016-08-18 05:25:30
【问题描述】:

我无法将 last_day 数据从 yyyymmdd 转换为 ddmmyyyy。 我的字段是整数。所以我转换成字符。然后我尝试格式化为to_date。当我尝试转换为ddmmyyyy.There 显示一些错误消息。

This is my formula:
LAST_DAY(to_date(cast(IVL_SCHEDULER_PROC_DATE as char(8)),'yyyymmdd'))

Result 
2016-08-18

Expected Result
18-08-2016

有人知道吗?

【问题讨论】:

    标签: sql date db2


    【解决方案1】:

    您可以使用 varchar_format 如下;

    SELECT VARCHAR_FORMAT(TO_DATE("IVL_SCHEDULER_PROC_DATE",'YYYY-MM-DD'),'MM-DD-YYYY') from db2inst1.test
    18-08-2016
    

    这是带有 varchar_format 的 last_day 函数;

    SELECT VARCHAR_FORMAT(LAST_DAY(TO_DATE("IVL_SCHEDULER_PROC_DATE",'YYYY-MM-DD')),'MM-DD-YYYY') from db2inst1.test
    31-08-2016
    

    【讨论】:

    • 是的。它有效。但是您忘记转换字段。它应该被强制转换(IVL_SCHEDULER_PROC_DATE as char(8)),'yyyymmdd')
    【解决方案2】:

    这行得通吗?

    select 
      varchar(mod(IVL_SCHEDULER_PROC_DATE,100)) || '-' ||
      varchar(mod(IVL_SCHEDULER_PROC_DATE/100,100)) || '-' ||
      varchar(IVL_SCHEDULER_PROC_DATE/10000)
    

    使用 20151231 的测试值,我得到“31-12-2015”的结果。

    【讨论】:

      猜你喜欢
      • 2013-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-04
      • 1970-01-01
      相关资源
      最近更新 更多