DB2 日期比较



我正在尝试查询 DB2 数据库以查找两个日期列(START_DATEEND_DATE(之间的记录(日期以 YYYYMMDD 格式存储在数据库中(。这就是我所拥有的,但它不起作用。谁能帮我解决这个问题?

SELECT *
FROM TBDeals
WHERE TIMESTAMP_FORMAT(START_DATE, 'YYYYMMDD') >= '2020-03-01' 
AND TIMESTAMP_FORMAT(END_DATE, 'YYYYMMDD') <= '2020-04-20';

谢谢

将日期存储为字符串,这不是一个好的做法。另一方面,您使用的格式确实允许正确的排序,那么为什么不简单地根据字符串检查现有值呢?

where startdate >= '20200301' and end_date <= '20200420'

这种方法的优点是它可以利用字符串日期列上的索引。

如果值是数字,则:

where startdate >= 20200301 and end_date <= 20200420

您的日期范围似乎向后,请尝试此版本:

SELECT *
FROM TBDeals 
WHERE
TIMESTAMP_FORMAT(START_DATE, 'YYYYMMDD') >= '2020-03-20' AND
TIMESTAMP_FORMAT(END_DATE, 'YYYYMMDD') <= '2020-04-01';

最新更新