2016-08-16 60 views
0

我想爲我的出勤率創建較高的圖表時間線圖表,但我的結果中出現略有不同的記錄。以15分鐘遞增的MySQL數據

存儲考勤表是:

+++++++++++++++++++++++++++++++++ 
Id | Date  | AttendTime(varchar) 
-------------------------------- 
1 | 20160815 | 7:51 
2 | 20160815 | 7:53 
3 | 20160815 | 8:01 
------------------------------- 

我使用以下SQL來獲取數據

SELECT 
    COUNT(Id) as Total 
FROM Attendance 
    WHERE Date = '20160815' AND 
      HOUR(STR_TO_DATE(AttendTime, '%H:%i')) <= HOUR(STR_TO_DATE('7:30', '%H:%i')) 

我應該得到0,因爲有沒有,但我得到的3條記錄。我究竟做錯了什麼? 謝謝。

+3

我所期望的2條記錄,如'7 <= 7'。 HOUR函數將返回7的記錄和條件..你可能想擺脫'HOUR'函數.. – Galz

+2

@Galz是正確的:http://sqlfiddle.com/#!9/473ca5/2 - 爲什麼你應該得到0的結果?也許你應該刪除'小時'.... – sgeddes

回答

1

如果你只是想看到很多上座率是如何7:30之前,您不需要HOUR功能:

SELECT 
    COUNT(Id) as Total 
FROM Attendance 
    WHERE Date = '20160815' 
    AND STR_TO_DATE(AttendTime, '%H:%i') <= STR_TO_DATE('7:30', '%H:%i') 
+0

謝謝@Galz,這正是我最終做的。太好了! – snowflakes74