2010-09-01 56 views
40

我會說明我想在下面的例子中得到:如何獲得四舍五入到個小時兩個日期之間的差異

'2010-09-01 03:00:00' - '2010-09-01 00:10:00' 

使用TIMEDIFF(),我們得到2結果。這意味着,它沒有考慮剩下的50分鐘。

在這種情況下,我想得到的是:50(分鐘)/ 60 = 0.83期間。因此,結果應該是2.83而不是2

+2

您是否投射爲整數?你應該得到一個時間結果,如'2:50:00'。 – Matthew 2010-09-01 19:32:44

回答

89
select time_to_sec(timediff('2010-09-01 03:00:00', '2010-09-01 00:10:00'))/3600; 

+-----------------------------------------------------------------------------+ 
| time_to_sec(timediff('2010-09-01 03:00:00', '2010-09-01 00:10:00'))/3600 | 
+-----------------------------------------------------------------------------+ 
|                  2.8333 | 
+-----------------------------------------------------------------------------+ 
+2

+1:很好! – 2010-09-01 19:36:21

+0

謝謝。這工作! – 2010-09-01 19:47:21

+8

timediff解決方案有一個問題:它的值不能超過839小時(減1秒)。所以它將無法找到超過〜35天的差異 – 2014-12-18 19:17:08

10

你可以嘗試以下方法:

time_format(timediff(max(l.fecha), min(l.fecha)),'%H:%m') //Hora y minutos 
+4

Este sitio esInglés。 Su ayuda se agradece,pero por favor,tratar de publicar las respuestas enInglés。 – Jules 2013-01-19 23:47:13

+4

它的重要組成部分是(沒有hablo espan〜ol,但我不清楚hsi的答案): -/ – Mawg 2013-03-01 03:03:55

+0

你在錯誤的鄰居轉貼,但你的意圖無論如何表示讚賞。多姆蘇託福。 – DragShot 2017-11-22 04:37:02

7

使用TIMESTAMPDIFF爲小時確切的數字:

SELECT 
     b.`Start_Date`, 
     b.`End_Date`, 
     TIMESTAMPDIFF(HOUR, b.`Start_Date`, b.`End_Date`) AS `HOURS` 
FROM my_table b; 
0

的MySQL得到的小時時間戳之間的數字:

select timestampdiff(second,'2010-09-01 00:10:00', '2010-09-01 03:00:00')/3600; 
+0

爲什麼不'timestampdiff(小時,'2010-09-01 00:10:00','2010-09-01 03:00:00')'? – codeforester 2017-12-14 22:23:59

+0

它沒有考慮到會議紀要。你所建議的答案爲2,而上述解答爲2.83(0.83小時爲50分鐘的差值) – bangde 2017-12-15 09:53:37

0

如果使用時間戳,這可能是在溶液MySQL使用SQL。

SELECT TIMESTAMPDIFF(HOUR, '2010-11-29 13:13:55', '2010-11-29 13:16:55') as newtable; 

| newtable | 

7 

1 row in set (0.01 sec)