DB2 for IBM i(iSeries)日期 - 需要比较(当前日期 - 1)

时间:2015-07-23 16:37:16

标签: db2 ibm-midrange

我是DB2 for IBM i(iSeries)语法的新手。我想将表中的日期字段与昨天的日期(当前日期 - 1)进行比较以进行审计。但是,我无法让它发挥作用。我收到“[SQL0182]日期,时间或时间戳表达式无效”错误。任何帮助是极大的赞赏。见下面的代码。

SELECT DECIMAL_FIELD
 FROM SCHEMA.TABLE
  WHERE DATE(INSERT(INSERT(DIGITS(DECIMAL_FIELD), 5, 0, '-'), 8, 0, '-')) > DATE(VARCHAR_FORMAT(TIMESTAMP_ISO(CURRENT DATE), 'YYYY-MM-DD')) - 1
AND DECIMAL_FIELD <> 0

1 个答案:

答案 0 :(得分:4)

指定持续时间。

SELECT DECIMAL_FIELD
FROM SCHEMA.TABLE
WHERE DATE(INSERT(INSERT(DIGITS(DECIMAL_FIELD), 5, 0, '-'), 8, 0, '-')) >
    DATE(VARCHAR_FORMAT(TIMESTAMP_ISO(CURRENT DATE), 'YYYY-MM-DD')) - 1 DAY
    AND DECIMAL_FIELD <> 0

此外,比较可以简化:

SELECT DECIMAL_FIELD
FROM SCHEMA.TABLE
WHERE DATE(INSERT(INSERT(DIGITS(DECIMAL_FIELD), 5, 0, '-'), 8, 0, '-')) >
    CURRENT_DATE - 1 DAY
    AND DECIMAL_FIELD <> 0

Datetime arithmetic in SQL