Mysql - 选择与日期范围不匹配的行?

时间:2012-07-31 09:55:28

标签: mysql sql

我在mysql中有一个表,其中包含一个开始和结束日期字段。我需要做的是查询此表以查找与我搜索的日期不匹配的所有行。我该怎么办?因此,如果我使用今天的日期并使用它查询此表,那么我需要查找此日期不在表中的开始日期和结束日期之间的所有行。希望有意义!

4 个答案:

答案 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)