DB2的日期函数

DB2的日期函数

问题描述:

我有一个DB2中有事务细节的文件,我的需求是提取最近1个月的事务数据。目前我手动修改日期范围如下。DB2的日期函数

WHERE TRAN_DATE BETWEEN 20170115和20170214

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

如何使用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) 
+0

您认为它将与我的文件中的日期格式?日期填充为YYYYMMDD –

+0

@ShabeenZarook不,但您可以创建一个将日期值转换为数值的UDF。您没有提及平台,但是如果IBM i,请考虑下载并使用[Alan Campin的iDate](http://www.think400.dk/downloads.htm) – Charles

如果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')