我正在尝试获取两个日期之间的数据。我的查询是:
select *
from TABLE
where CREATED_DATE >= '11-MAY-2015'
and CREATED_DATE <= '11-MAY-2015'
它不返回任何值。虽然数据存在于 5 月 11 日,如果我将日期指定为
,则可以获取这些数据CREATED_DATE >= '11-MAY-2015' and CREATED_DATE <= '12-MAY-2015'
最佳答案
DateType Date
也有时间部分。
当你说 '11-MAY-2015'
它实际上是 '11-MAY-2015 00:00:00'
Date
This datatype contains the datetime fields YEAR, MONTH, DAY, HOUR, MINUTE, and SECOND. It does not have fractional seconds or a time zone.
试试这个查询
select *
from TABLE
where
CREATED_DATE >= date '2015-05-11' and CREATED_DATE < date '2015-05-12'
这将生效
11-MAY-2015 00:00:00 <= CREATED_DATE < 12-MAY-2015 00:00:00
或者使用 Trunc
将忽略日期的 time
:
select *
from TABLE
where
Trunc(CREATED_DATE) = date '2015-05-11'
编辑:使用 date literals
更新日期字段,因为 11-MAY-2015
仅适用于某些 NLS
设置。( @Ben
和 @David Aldridge
的评论)
关于sql - 在日期之间获取数据不准确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32560086/