【发布时间】:2018-02-28 14:35:45
【问题描述】:
我正在尝试将“curdate()”功能应用到来自 DB2 的 select 语句。我已经习惯了 MySQL,但我仍在尝试掌握许多 DB2 功能以及如何将两者结合起来。
我的查询是完整的,除了一行。我正在尝试根据发货日期进行选择,即EXTD1H 列,我需要对照今天或 curdate() 检查它。问题是 DB2 中的列是整数格式,而不是日期格式,我没有更改它的选项。在之前对 mysql 的插入中,我已经能够将它放入 Y-m-d 格式并且我知道我可以使用 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
【问题讨论】:
-
在 EXTD1H 列中显示一个整数值的示例及其匹配的日历日期,即 YYYYMMDD 是否始终以数字表示,必要时在 MM 和 YY 上使用前导零?
-
DATE究竟如何表示为INT? -
我刚刚更新了这些值。基本上,该列“代表”日期,但它是一个标准字符列,在这种情况下它是一个 INT