我想显示结果,其中表中存储的日期不在查询中指定的日期之间。
这是当前的SQL查询
SELECT accounts_cstm.statusdescription_c,
users.user_name,
accounts.name,
accounts_cstm.account_number_c,
DATE_FORMAT(MAX(calls.date_modified),'%Y/%m/%d')
FROM accounts
LEFT OUTER JOIN calls ON accounts.id = calls.parent_id
LEFT OUTER JOIN users ON accounts.assigned_user_id = users.id
LEFT OUTER JOIN accounts_cstm ON accounts.id = accounts_cstm.id_c
AND accounts.deleted <> 1
WHERE
(SELECT DATE_FORMAT(MAX(calls.date_modified),'%Y/%m/%d')
FROM calls) NOT BETWEEN '2014/06/25' AND '2014/07/02'
AND users.user_name = 'CBennet'
AND accounts_cstm.chkcustomer_c = '1'
GROUP BY accounts.name
我得到了完整的结果列表,但是我得到的结果不应该出现,即在指定日期之间使用calls.date_modified的结果。
请参阅下面的错误结果示例,您可以看到右侧的日期位于2014/06/25
和2014/07/02
之间,因此不应出现。
有人能让我知道我在这里做错了吗?
在表调用中,date_modified以以下格式存储:2014-06-10 10:55:47
答案 0 :(得分:0)
试试这个
SELECT *
FROM `test`
WHERE (date NOT BETWEEN '2012-01-30 14:15:55' AND '2014-09-29 10:15:55')
我在sqlfiddle创建了一些带有一些测试值的测试表,得到了所需的输出http://sqlfiddle.com/#!2/5ffb7/4