我需要一条SQL查询语句。
如果我有两个列STARTDATE
和END_DATE
,
我想选择所有日期落在这两个日期之间的行。
例如:startdate=2011年1月1日,enddate=2011年2月2日。
我需要一条SQL查询语句。
如果我有两个列STARTDATE
和END_DATE
,
我想选择所有日期落在这两个日期之间的行。
例如:startdate=2011年1月1日,enddate=2011年2月2日。
SELECT * FROM table1
WHERE '2011-01-01' BETWEEN table1.startdate AND table1.enddate
用now()
或参数或其他方式替换明确的日期。
如果enddate未定义为NOT NULL
,则可以进行以下操作:
SELECT * FROM table1
WHERE '2011-01-01' BETWEEN table1.startdate AND COALESCE(table1.enddate, NOW())
COALESCE(enddate,now())
。 - Lamakenddate
被定义为 NOT NULL,那是个好建议。 - Johan这能帮助您吗?
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'
在你进一步澄清问题之前,我们很难提供更好的答案。
SELECT COUNT(DISTINCT id) FROM Table WHERE rqmnt_start_date::TIMESTAMP >= '27/01/2022' AND rqmnt_end_date::TIMESTAMP <= '30/11/2022'
SELECT * FROM t1 WHERE ? BETWEEN startdate AND enddate
。 - Johan