我需要在SQL中进行查询
如果我有两列STARTDATE
和END_DATE
我想选择日期介于这两个日期之间的所有行。
例如:startdate = 1/1/2011 AND enddate = 2/2/2011。
答案 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())
答案 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'
在你做更多澄清问题之前,我们很难提供更好的答案。