【发布时间】:2017-02-15 16:07:03
【问题描述】:
我有一个文件,其中包含 DB2 中的交易详细信息,我的要求是提取最近 1 个月的交易数据。目前我手动修改日期范围如下。
20170115 和 20170214 之间的 TRAN_DATE 位置
有没有办法不用每天手动调整日期来编写代码?
【问题讨论】:
标签: db2
我有一个文件,其中包含 DB2 中的交易详细信息,我的要求是提取最近 1 个月的交易数据。目前我手动修改日期范围如下。
20170115 和 20170214 之间的 TRAN_DATE 位置
有没有办法不用每天手动调整日期来编写代码?
【问题讨论】:
标签: db2
使用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)
【讨论】:
如果 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')
【讨论】: