有可能做这样的事情吗?
select * from table where Date BETWEEN '2019-05-29' AND '2019-05-29'
答案 0 :(得分:2)
是的,有可能。如果您有时间,可以使用DATE
函数跳过它:
SELECT * FROM table WHERE DATE(Date) BETWEEN '2019-05-29' AND '2019-05-29'
-- it may degrade performance, condition is not SARGable
答案 1 :(得分:2)
是的,但是更好的方法是:
select t.*
from table t
where t.Date >= date('2019-05-29') AND
t.Date < date('2019-05-29') + interval 1 day
为什么这样更好?它的列名没有功能,因此可以利用date
列上的索引。
答案 2 :(得分:0)
是的,如果您想在测试窗口中运行它而不用手动更改代码中的日期,可以将其设置为变量。使用trunc摆脱时间,即不会有29-05-2019 23:59:00。如果您希望在某个时间段内使用相同的日期,请删除该截断符,然后设置小时-分钟-秒,这样查询就可以更精确
SELECT t.*
FROM table t
WHERE t.date BETWEEN trunc(to_date(:datefrom, 'dd.mm.yyyy hh24:mi:ss')) AND
trunc(to_date(:dateto, 'dd.mm.yyyy hh24:mi:ss'))