Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql DB2日期比较_Sql_Date_Db2_Where Clause - Fatal编程技术网

Sql DB2日期比较

Sql DB2日期比较,sql,date,db2,where-clause,Sql,Date,Db2,Where Clause,我试图查询DB2数据库,以查找两个日期列之间的记录,START\u date和END\u date(日期以YYYYMMDD格式存储在DB中)。这就是我所拥有的,但它不起作用。谁能帮我修一下吗 选择* 来自TBDeals 其中时间戳格式(开始日期,'yyyyymmdd')>='2020-03-01' 和TIMESTAMP_格式(END_DATE,'yyyyymmdd')如果您的日期范围向后,请尝试以下版本: SELECT * FROM TBDeals WHERE TIMESTAMP_FO

我试图查询DB2数据库,以查找两个日期列之间的记录,
START\u date
END\u date
(日期以YYYYMMDD格式存储在DB中)。这就是我所拥有的,但它不起作用。谁能帮我修一下吗

选择*
来自TBDeals
其中时间戳格式(开始日期,'yyyyymmdd')>='2020-03-01'

和TIMESTAMP_格式(END_DATE,'yyyyymmdd')如果您的日期范围向后,请尝试以下版本:

SELECT *
FROM TBDeals 
WHERE
    TIMESTAMP_FORMAT(START_DATE, 'YYYYMMDD') >= '2020-03-20' AND
    TIMESTAMP_FORMAT(END_DATE, 'YYYYMMDD') <= '2020-04-01';
选择*
来自TBDeals
哪里
时间戳格式(开始日期,'YYYYMMDD')>='2020-03-20'和

TIMESTAMP_格式(END_DATE,'yyyyymmdd')您将日期存储为字符串,这不是一种好的做法。另一方面,您所使用的格式允许正确排序,那么为什么不简单地对照字符串检查现有值,就像这样呢

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

其中startdate>='20200301'和end_date=20200301和end_date感谢您指出这一点。让我来解决这个问题。但问题仍然存在。实际上,我们将开始和结束日期存储为INT。这就是我遇到这个问题的原因。当我进行比较时,比较自然会失败。@sravan:。。。除非你把它们和数字比较。请看我编辑的答案。谢谢。没有转换本身,它正在工作。我第一次运行查询时把它弄糟了。
where startdate >= 20200301 and end_date <= 20200420