2015-10-20 68 views
1

我怎樣才能計算出總的時間基礎上,我的日期時間範圍我怎樣才能得到總小時的日期時間範圍

,如果我有這個接受的日期範圍2015-09-07 06:00:00 - 2015-09-11 22:00:00

我想要得到的數字每天從06:00:00到22:00:00的時間僅爲用戶總和所有小時。

這裏是我的樣本數據

+----+---------+--+---------------------+---------------------+--+ 
| |   | |      |      | | 
+----+---------+--+---------------------+---------------------+--+ 
| id | user_id | | start_time   | end_time   | | 
| 1 | 24  | | 2015-09-07 07:10:01 | 2015-09-07 10:20:20 | | 
| 2 | 24  | | 2015-09-07 12:10:00 | 2015-09-07 15:00:00 | | 
| 3 | 24  | | 2015-09-07 16:00:00 | 2015-09-07 22:20:20 | | 
| 4 | 24  | | 2015-09-07 23:25:20 | 2015-09-08 05:00:00 | | 
+----+---------+--+---------------------+---------------------+--+ 

預先感謝您。

+0

使用此TIME_TO_SEC(TIMEDIFF(end_time,end_time))/ 3600作爲小時 –

回答

1

只需使用功能TIMESTAMPDIFF數小時:

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_timestampdiff

實施例:

SELECT TIMESTAMPDIFF(HOUR, start_time, end_time) 
      as `difference` FROM timeattendance WHERE user_id = 24 
+0

但我只接受從06:00:00 - 22:00:00與2015-09-07 - 2015-09-11 – jemz

+0

但日期我怎麼把我從2015-09-07到2015-09-11只查詢的where子句,然後在06:00:00 - 22:00:00時間,我試過你的解決方案,它給了小時,但最後一行仍在計數 – jemz

+0

最後一行的start_time是'23:25:20'它不應該被計數,因爲我只接受直到22:00:00 – jemz

0

使用MySQL TIME_TO_SECTIMEDIFF功能

Select TIME_TO_SEC(TIMEDIFF(end_time, start_time))/3600 as hours from table 
相關問題