我需要SQL查询。如果我有两列STARTDATE
和END_DATE
。
我想选择日期落在这两个日期之间的所有行。在两列之间选择日期
例如:startdate = 1/1/2011 AND enddate = 2/2/2011。
我需要SQL查询。如果我有两列STARTDATE
和END_DATE
。
我想选择日期落在这两个日期之间的所有行。在两列之间选择日期
例如:startdate = 1/1/2011 AND enddate = 2/2/2011。
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())
这对您有帮助吗?
select *
from table
where START_DATE < NOW() AND END_DATE > NOW()
取决于数据库,使用CURRENT_TIMESTAMP()或TODAY()
你的意思是这样的:
select *
from mytable
where start_date >= '01/01/2011'
and end_date <= '02/01/2011'
直到你做更多的澄清你的问题,我们很难提供更好的答案。
您的意思是说,对于结果集中开始和结束之间的每个单独日期,您是否需要一行? – Yuck
[获取两个日期之间的日期列表]的可能重复(http://stackoverflow.com/questions/510012/get-a-list-of-dates-between-two-dates) – Jacob
如果这是MySQL。如果没有,对不起,快速愚蠢的投票:) – Jacob