SELECT MySQL行,其中今天的日期在两个DATE列之间

时间:2012-04-18 03:36:58

标签: mysql select

如何获取表格中的行,其中今天的日期介于该行的两个DATE列之间(包括)? 例如,取表格的这两列:

enter image description here

我怎样才能获得4月10日的第一行和第二行,或者25日的第3行(包括,就像我说的那样)?

非常感谢任何帮助。提前谢谢!

4 个答案:

答案 0 :(得分:23)

您可以按如下方式添加条件

DATE(NOW()) between date1 and date2

答案 1 :(得分:16)

你会发现很多人在运营商之间使用,但我更喜欢使用简单的AND运算符。

我之所以这样做,是因为虽然运算符之间是包含的,但简单日期(2012-04-10)可以算作午夜,因此不具有包容性。

所以这应该可以正常工作,并且将始终包含日期范围的边界:

SELECT * FROM table WHERE from_date <= '2012-04-10' AND to_date >= '2012-04-10'

答案 2 :(得分:6)

只需使用SQL now()函数来比较日期列,如下所示:

SELECT * from table where now() >= from_date and now() <= to_date

答案 3 :(得分:0)

如果您有日期(而非日期时间)列,请使用CURTIME()或DATE(NOW()),切勿使用CesarC正确编写的NOW()来使用BETWEEN。

SELECT * FROM table WHERE CURTIME() BETWEEN from_date AND to_date