我在mysql中有一个表,其中包含一个开始和结束日期字段。我需要做的是查询此表以查找与我搜索的日期不匹配的所有行。我该怎么办?因此,如果我使用今天的日期并使用它查询此表,那么我需要查找此日期不在表中的开始日期和结束日期之间的所有行。希望有意义!
答案 0 :(得分:2)
您可以使用BETWEEN
子句根据日期范围过滤记录,并排除可以使用NOT
子句的日期范围:
SELECT *
FROM my_table
WHERE search_date NOT BETWEEN start_date AND end_date;
答案 1 :(得分:0)
Select *
from table
where [todaysdate]<datestart
or [todaysdate]>dateend
答案 2 :(得分:0)
要选择通常使用BETWEEN
的范围,如果要排除这些值,只需使用NOT BETWEEN
。
答案 3 :(得分:0)
另一个变种:
select id, start_date, end_date
from my_table
where end_date < CAST('2012-01-01' AS DATE)
or start_date > CAST('2012-12-31' AS DATE)