显示日期sql之间的结果

时间:2014-07-02 09:20:06

标签: mysql

我想显示结果,其中表中存储的日期不在查询中指定的日期之间。

这是当前的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/252014/07/02之间,因此不应出现。

img

有人能让我知道我在这里做错了吗?

在表调用中,date_modified以以下格式存储:2014-06-10 10:55:47

1 个答案:

答案 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