SQL查询不在两个日期之间 [英] SQL Query NOT Between Two Dates

查看:87
本文介绍了SQL查询不在两个日期之间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要有关SQL查询的帮助.

I need some help with SQL Query.

我正在尝试从表test_table中选择所有记录,这些记录将不适用于两个日期"2009-12-15"和"2010-01-02"之间.

I am trying to select all records from table test_table which would not fit between two dates '2009-12-15' and '2010-01-02'.

这是我的表结构:

`start_date` date NOT NULL default '0000-00-00',
`end_date` date NOT NULL default '0000-00-00'

-----------------------------
 **The following record should not be selected:**

`start_date`, `end_date`
'2003-06-04', '2010-01-01'

我的查询:

SELECT * 

FROM `test_table` 
WHERE 

CAST('2009-12-15' AS DATE) NOT BETWEEN start_date and end_date 
AND 
CAST('2010-01-02' AS DATE) NOT BETWEEN start_date and end_date

您知道为什么我的查询选择错误的记录吗?我是否应该将查询中的值顺序更改为类似以下内容:

Any idea why my query select wrong records? Should I change the order of values in query to something like:

start_date NOT BETWEEN CAST('2009-12-15' AS DATE) and CAST('2010-01-02' AS DATE)

非常感谢您的帮助

推荐答案

如何尝试:

select * from 'test_table'
where end_date < CAST('2009-12-15' AS DATE)
or start_date > CAST('2010-01-02' AS DATE)

它将返回所有与您的日期范围完全不重叠的日期范围.

which will return all date ranges which do not overlap your date range at all.

这篇关于SQL查询不在两个日期之间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆