来自db2查询的CURDATE功能

问题描述 投票:1回答:1

我正在尝试将'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

mysql sql db2
1个回答
3
投票

最好不要对列进行操作,因此使用索引。您可以对当前日期进行类型转换以适合您的数据,如下所示:

WHERE extd1h = INTEGER(VARCHAR_FORMAT(CURRENT DATE,'YYYYMMDD'))
© www.soinside.com 2019 - 2024. All rights reserved.