2016-04-28 96 views
1

我需要從MySQL表中顯示時間表。基本上每小時檢索記錄數。我TimeSigned欄是日期戳MySQL按小時間隔獲取記錄

登錄

Id TimeSigned   MarkedBy 
1. 2016-03-14 05:12:17 James 
2. 2016-03-14 05:30:10 Mark 
3. 2016-03-14 06:10:00 James 
4. 2016-03-14 07:30:10 Mary 

我使用下面的查詢,但它帶來錯誤的結果。

SELECT COUNT(Id) From Logins WHERE HOUR(TimeSigned) > 5 AND HOUR(TimeSigned) < 6 

我期待它返回計數2(即1和2的記錄是5-6的時間範圍內),但它帶回0

我創建這裏sqlfiddle SQL Fiddle

回答

1

在您的第一個條件中使用=。 5和6之間沒有任何東西,所以它會計數0

SELECT COUNT(Id) From Logins WHERE HOUR(TimeSigned) >= 5 AND HOUR(TimeSigned) < 6 
1

HOUR()返回小時部分,因此它是整數。 沒有完整的數字是大於5和小於6 我想你想只認準小時是等於5

SELECT COUNT(Id) From Logins WHERE HOUR(TimeSigned) = 5 

或者,如果你願意,你可以爲每個小時的返回計數做

SELECT COUNT(Id) as Count,HOUR(TimeSigned) as Hour From Logins GROUP BY HOUR(TimeSigned)