【问题标题】:Date Function for DB2DB2 的日期函数
【发布时间】:2017-02-15 16:07:03
【问题描述】:

我有一个文件,其中包含 DB2 中的交易详细信息,我的要求是提取最近 1 个月的交易数据。目前我手动修改日期范围如下。

20170115 和 20170214 之间的 TRAN_DATE 位置

有没有办法不用每天手动调整日期来编写代码?

【问题讨论】:

    标签: db2


    【解决方案1】:

    使用current date 和日期算术怎么样?

    WHERE TRAN_DATE BETWEEN current date and (current date - 1 month)
    

    如果需要YYYYMMDD格式,可以这样转换:

    YEAR(CURRENT DATE) * 10000 + MONTH(CURRENT DATE) * 100 + DAY(CURRENT DATE)
    

    【讨论】:

    • 您认为它会与我文件中的日期格式兼容吗?日期填充为 YYYYMMDD
    • @ShabeenZarook 否,但您可以创建一个将日期值转换为数值的 UDF。您没有提到平台,但如果是 IBM i,请考虑下载和使用 Alan Campin's iDate
    【解决方案2】:

    如果 TRANS_DATE 是一个数字,那么

    WHERE TRANS_DATE BETWEEN INTEGER(TO_CHAR(CURRENT DATE,'YYYYMMDD')) AND 
                             INTEGER(TO_CHAR(CURRENT DATE - 1 MONTH,'YYYYMMDD'))
    

    如果是字符串则

    WHERE TRANS_DATE BETWEEN TO_CHAR(CURRENT DATE,'YYYYMMDD') AND 
                             TO_CHAR(CURRENT DATE - 1 MONTH,'YYYYMMDD')
    

    【讨论】:

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