如何获取表中今天日期介于(包括)该行的两个 DATE 列之间的行?例如,取一个表的这两列:
我怎么能在 4 月 10 日获得第一排和第二排,或者在 25 日获得第三排(包括在内,就像我说的那样)?
任何帮助将不胜感激。提前致谢!
您可以按如下方式添加条件
DATE(NOW()) between date1 and date2
你会发现很多人使用 between 运算符,但我更喜欢使用简单的 AND 运算符。
我这样做是因为尽管运算符 IS 包含在内,但简单日期 (2012-04-10) 可以算作午夜,因此不包含在内。
因此,这应该可以正常工作,并且始终包括日期范围的边界:
SELECT * FROM table WHERE from_date <= '2012-04-10' AND to_date >= '2012-04-10'
只需使用 SQL now() 函数来比较日期列,如下所示:
SELECT * from table where now() >= from_date and now() <= to_date
如果您有日期(不是日期时间)列,请使用 CURTIME() 或 DATE(NOW()),不要使用 CesarC 正确写的 NOW(),您可以使用 BETWEEN。
SELECT * FROM table WHERE CURTIME() BETWEEN from_date AND to_date