【问题标题】:How to convert a NUMERIC field into a DATE field and use it in a WHERE clause in DB2?如何将 NUMERIC 字段转换为 DATE 字段并在 DB2 的 WHERE 子句中使用它?
【发布时间】:2022-11-01 23:04:31
【问题描述】:

我有一个整数格式的字段20220801,需要转换为日期字段。然后,我需要在 WHERE 子句中使用此字段与CURRENT DATE 进行比较。这是专门针对 DB2 的。

每次我尝试这样做时,我都会收到此错误消息:

下面是一些我尝试过的sn-ps都失败了,每次都返回上面的错误

SELECT
    DATE(TIMESTAMP_FORMAT(CHAR(BWDUED), 'YYYYMMDD')) AS DUE_DATE,
    CURRENT DATE AS TODAY_DATE
FROM
    SCHEMA.TABLE
WHERE
    DATE(TIMESTAMP_FORMAT(CHAR(BWDUED), 'YYYYMMDD')) = CURRENT_DATE
SELECT
    DATE(TO_DATE(CHAR(BWDUED), 'YYYYMMDD')) AS DUE_DATE,
    CURRENT DATE AS TODAY_DATE
FROM
    SCHEMA.TABLE
WHERE
    DATE(TO_DATE(CHAR(BWDUED), 'YYYYMMDD')) = CURRENT_DATE

我在这里查看了很多答案,但没有一个能让我摆脱这个错误。任何有关导航的帮助将不胜感激!

【问题讨论】:

    标签: sql date casting db2


    【解决方案1】:

    您可以在这里尝试使用TO_DATE() 函数:

    SELECT
        DATE(TO_DATE(CAST(BWDUED AS VARCHAR(8)), 'YYYYMMDD')) AS DUE_DATE,
        CURRENT DATE AS TODAY_DATE
    FROM SCHEMA.TABLE
    WHERE
        DATE(TO_DATE(CAST(BWDUED AS VARCHAR(8)), 'YYYYMMDD')) = CURRENT_DATE;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 2018-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-30
      相关资源
      最近更新 更多