我正在尝试将'curdate()'功能应用于来自DB2的select语句。我已经习惯了MySQL,但我仍在尝试掌握很多DB2功能,以及如何将两者结合起来。
除了一行外,我的查询已完成。我试图根据ship date进行选择,这是EXTD1H列,我需要对照today或curdate()检查它。问题是,DB2中的列是整数格式,而不是日期格式,我没有更改它的选项。在之前的mysql插入中,我已经能够将其转换为Y-m-d格式,我知道我可以使用LEFT(EXTD1H,4)来修剪年份,但是我不知道如何修改我的select,这样我就可以说WHERE EXTD1H is today,所以我只为这个日期选择记录。
以下是问题:

select
  invnoz as ORDER,
  fstatz as STATUS
from gportafl
  /*where EXTD1H is curdate, hypothetically*/
  AND FSTATZ <> 'S'
  limit 20;

如你所见,我的问题所在有一行评论。我确信这很简单,我只是在文档中找不到我想要的东西,也就是能够使用in t列来验证所选的记录是否来自今天。
更新:
列中的所有值都采用YYYYMMDD格式,即。
20180202
但应该是2018-02-02

最佳答案

最好不要对列执行操作,因此使用索引。
您可以按如下方式键入当前日期以适合您的数据:

WHERE extd1h = INTEGER(VARCHAR_FORMAT(CURRENT DATE,'YYYYMMDD'))

09-25 22:22