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