选择两列之间的日期

Con*_*nth 8 sql

我需要SQL中的查询.
如果我有两列STARTDATEEND_DATE.
我想选择日期介于这两个日期之间的所有行.

例如:startdate = 1/1/2011 AND enddate = 2/2/2011.

Joh*_*ica 17

SELECT * FROM table1 
WHERE '2011-01-01' BETWEEN table1.startdate AND table1.enddate
Run Code Online (Sandbox Code Playgroud)

now()或参数或其他替换显式日期.

如果没有定义enddate ,NOT NULL您可以这样做:

SELECT * FROM table1 
WHERE '2011-01-01' BETWEEN table1.startdate AND COALESCE(table1.enddate, NOW())
Run Code Online (Sandbox Code Playgroud)

请参阅:http://www.1keydata.com/sql/sql-coalesce.html

  • +1 - 但我会将结束日期更改为`COALESCE(enddate,now())` (2认同)

Jea*_*les 6

这对你有帮助吗?

select * 
from table 
where START_DATE < NOW() AND END_DATE > NOW()
Run Code Online (Sandbox Code Playgroud)

根据数据库,使用 CURRENT_TIMESTAMP() 或 TODAY()