连接时间和日期时选择数据范围

时间:2016-12-27 14:42:55

标签: mysql sql

我目前正在使用下面的行来获取日期

WHERE DATE (DateTime) BETWEEN '2016-12-19' AND '2016-12-23'

12/12/2016 09:31 - 这是日期和时间格式

但是从2014年开始,它一直在返回表格中的所有内容。

上面的语句似乎只在它的一个简短查询时起作用,但是当我向SQL查询添加几行时它似乎不起作用,它提取表中的所有日期。

SELECT phone_number,system_outcome,DateTime
FROM calls 
WHERE DATE (DateTime) BETWEEN '2016-12-19' AND '2016-12-23'
AND system_outcome = 'ANSWER_MACHINE'
GROUP BY phone_number
HAVING count(Phone_number) > 6

1 个答案:

答案 0 :(得分:0)

您需要学习以正确的格式存储日期,而不是字符串。您可以使用where

修复date_format()子句
where date_format(left(date, 10), '%m/%d/%Y') between '2016-12-19' AND '2016-12-23'

我还应该注意,如果你想要电话号码,那么所有其他属性应该是聚合函数的参数。说:

SELECT phone_number, system_outcome, group_concat(DateTime)
FROM calls 
WHERE date_format(left(date, 10), '%m/%d/%Y') BETWEEN '2016-12-19' AND '2016-12-23' AND
      system_outcome = 'ANSWER_MACHINE'
GROUP BY phone_number, system_outcome
HAVING count(Phone_number) > 6;