如何在MySQL的现在和午夜之间写出时间查询?

Jus*_*ohn 11 mysql

我有如下查询

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)


Eri*_*man 5

SELECT * FROM programs where startTime between now() and CURRENT_DATE() + INTERVAL 1 DAY;
Run Code Online (Sandbox Code Playgroud)

当前日期返回当天的开始,然后我们添加1天以结束它.

  • 是的,您可能想使用 `where startTime &gt;= now() and startTime &lt; CURRENT_DATE() + INTERVAL 1 DAY` (3认同)
  • 这将包括明天的00:00:00; 目前还不清楚这是否可取. (2认同)