2016-12-27 187 views
0

我目前使用的線以下,以獲得最新選擇數據範圍

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

什麼是列'DateTime'的數據類型? – leeyuiwah

+0

我不使用字段名稱DateTime我剛剛選擇了該字段以確保正確的日期被選中。 –

回答

0

您需要學會以正確的格式存儲日期,而不是字符串。您可以使用date_format()解決您的where條款:

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;