我需要一些SQL查询的帮助。
我正在尝试从表test_table中选择不适合在两个日期'2009-12-15‘和'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知道为什么我的查询选择了错误的记录吗?我是否应该将查询中值的顺序更改为如下所示:
start_date NOT BETWEEN CAST('2009-12-15' AS DATE) and CAST('2010-01-02' AS DATE)非常感谢你的帮助
发布于 2009-11-10 01:24:47
你的逻辑是倒退的。
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)https://stackoverflow.com/questions/1702420
复制相似问题