选择两列之间的日期

时间:2011-08-25 12:44:26

标签: sql

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

  

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

3 个答案:

答案 0 :(得分:15)

SELECT * FROM table1 
WHERE '2011-01-01' BETWEEN table1.startdate AND table1.enddate

使用now()或参数或其他任何内容替换显式日期。

如果结束日期定义为NOT NULL,您可以这样做:

SELECT * FROM table1 
WHERE '2011-01-01' BETWEEN table1.startdate AND COALESCE(table1.enddate, NOW())

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

答案 1 :(得分:1)

这对你有帮助吗?

select * 
from table 
where START_DATE < NOW() AND END_DATE > NOW()

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

答案 2 :(得分:1)

你的意思是:

select *
from mytable
where start_date >= '01/01/2011'
and end_date <= '02/01/2011'

在你做更多澄清问题之前,我们很难提供更好的答案。