17

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

在此处输入图像描述

我怎么能在 4 月 10 日获得第一排和第二排,或者在 25 日获得第三排(包括在内,就像我说的那样)?

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

4

4 回答 4

31

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

DATE(NOW()) between date1 and date2
于 2012-04-18T03:46:43.003 回答
25

你会发现很多人使用 between 运算符,但我更喜欢使用简单的 AND 运算符。

我这样做是因为尽管运算符 IS 包含在内,但简单日期 (2012-04-10) 可以算作午夜,因此不包含在内。

因此,这应该可以正常工作,并且始终包括日期范围的边界:

SELECT * FROM table WHERE from_date <= '2012-04-10' AND to_date >= '2012-04-10'
于 2012-04-18T03:51:37.783 回答
7

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

SELECT * from table where now() >= from_date and now() <= to_date
于 2012-04-18T03:39:53.753 回答
1

如果您有日期(不是日期时间)列,请使用 CURTIME() 或 DATE(NOW()),不要使用 CesarC 正确写的 NOW(),您可以使用 BETWEEN。

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

于 2020-11-09T08:38:53.607 回答