1

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

4

4 回答 4

3

您可以使用BETWEEN子句根据日期范围过滤记录并排除该日期范围,您可以将NOT子句用作:

SELECT * 
FROM my_table 
WHERE search_date NOT BETWEEN start_date AND end_date;
于 2012-07-31T10:01:22.933 回答
0
Select *
from table
where [todaysdate]<datestart
or [todaysdate]>dateend
于 2012-07-31T09:56:59.673 回答
0

要选择您通常使用的范围BETWEEN,并且如果您想排除这些值,您可以简单地使用NOT BETWEEN.

于 2012-07-31T09:57:23.720 回答
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)
于 2012-07-31T10:05:41.853 回答