我有如下查询
SELECT * FROM programs where startTime between now() and now() + INTERVAL 1 DAY;
Run Code Online (Sandbox Code Playgroud)
是否有可能在MySQL的现在和午夜之间编写查询?
像下面的东西
SELECT * FROM programs where startTime between now() and now() + midnight 12;
Run Code Online (Sandbox Code Playgroud)
ype*_*eᵀᴹ 13
我建议你总是使用clopen(闭合开放)间隔进行日期和时间比较.BETWEEN
表示闭合间隔(从两侧).一个非常好的解释是在@Aaron Bertrand的博客文章中:BETWEEN和魔鬼有什么共同之处?.这是一种编写查询的方法:
SELECT *
FROM programs
WHERE startTime >= NOW()
AND startTime < CURRENT_DATE() + INTERVAL 1 DAY ;
Run Code Online (Sandbox Code Playgroud)
SELECT * FROM programs where startTime between now() and CURRENT_DATE() + INTERVAL 1 DAY;
Run Code Online (Sandbox Code Playgroud)
当前日期返回当天的开始,然后我们添加1天以结束它.