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

JJJ*_*jim 9 mysql select

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

在此输入图像描述

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

任何帮助将不胜感激.提前致谢!

Che*_*min 23

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

DATE(NOW()) between date1 and date2
Run Code Online (Sandbox Code Playgroud)


Bil*_*ill 16

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

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

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

SELECT * FROM table WHERE from_date <= '2012-04-10' AND to_date >= '2012-04-10'
Run Code Online (Sandbox Code Playgroud)


Eri*_*tes 6

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

SELECT * from table where now() >= from_date and now() <= to_date
Run Code Online (Sandbox Code Playgroud)

  • 使用 CURDATE() 代替,请注意,如果您使用 NOW() 它包含时间信息并可能导致排除某些日期,即下一个函数返回 false (0): select "2010-01-01 14:00:00" &lt;= “2010-01-01” (2认同)