查询同一日期之间的数据

时间:2019-06-17 15:00:43

标签: mysql sql database mariadb

有可能做这样的事情吗?

select * from table where Date BETWEEN '2019-05-29' AND '2019-05-29'

3 个答案:

答案 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'))