我正在尝试将'curdate()'功能应用于DB2的select语句。我已经习惯了MySQL,但我仍然试图掌握很多DB2功能以及如何基本结合这两者。
我的查询完成,除了一行。我正在尝试根据发货日期进行选择,这是列EXTD1H
,我需要在今天检查它或curdate()。问题是DB2中的列是整数格式,而不是日期格式,我没有更改它的选项。在以前的mysql插入中,我已经能够将它放入Ymd格式,我知道我可以使用LEFT(EXTD1H,4)修剪年份,但我不知道如何修改我的选择以便我可以说WHERE EXTD1H is today
这样我只选择这个日期的记录。
这是查询:
select
invnoz as ORDER,
fstatz as STATUS
from gportafl
/*where EXTD1H is curdate, hypothetically*/
AND FSTATZ <> 'S'
limit 20;
正如您所看到的,我有一个注释行,我的问题是。我确信它很简单我似乎无法在文档中找到我正在寻找的内容,这是能够使用该INT列来验证所选记录是从今天开始的。
更新:
该列中的所有值都是YYYYMMDD格式,即20180202
但它应该是2018-02-02
最好不要对列进行操作,因此使用索引。您可以对当前日期进行类型转换以适合您的数据,如下所示:
WHERE extd1h = INTEGER(VARCHAR_FORMAT(CURRENT DATE,'YYYYMMDD'))