首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL查询不在两个日期之间

SQL查询不在两个日期之间
EN

Stack Overflow用户
提问于 2009-11-10 01:16:15
回答 7查看 109.3K关注 0票数 19

我需要一些SQL查询的帮助。

我正在尝试从表test_table中选择不适合在两个日期'2009-12-15‘和'2010-01-02’之间的所有记录。

这是我的表结构:

代码语言:javascript
复制
`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'

我的问题是:

代码语言:javascript
复制
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

知道为什么我的查询选择了错误的记录吗?我是否应该将查询中值的顺序更改为如下所示:

代码语言:javascript
复制
start_date NOT BETWEEN CAST('2009-12-15' AS DATE) and CAST('2010-01-02' AS DATE)

非常感谢你的帮助

EN

Stack Overflow用户

发布于 2009-11-10 01:24:47

你的逻辑是倒退的。

代码语言:javascript
复制
SELECT 
    *
FROM 
    `test_table`
WHERE
        start_date NOT BETWEEN CAST('2009-12-15' AS DATE) and CAST('2010-01-02' AS DATE)
    AND end_date NOT BETWEEN CAST('2009-12-15' AS DATE) and CAST('2010-01-02' AS DATE)
票数 8
EN
查看全部 7 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1702420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档