我有一个在DB2中有事务详细信息的文件,我的要求是提取最近1个月的事务数据。目前我手动修改日期范围如下。
在20170115和20170214之间的TRAN_DATE
有没有办法进行编码而无需每天手动调整日期?
答案 0 :(得分: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)
答案 1 :(得分:0)
如果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')