2009-09-22 69 views
10

例如,如何計算這些兩個日期時間之間的間隔:如何計算MySQL中的datetime間隔?

2009-09-18 00:00:00

2009-10-17 00:00:00

EDIT

我的意思是讓在年 - 月 - 日時的格式的時間間隔:分:秒

回答

9

關於使用datediff什麼:

mysql> select abs(datediff('2009-09-18 00:00:00', '2009-10-17 00:00:00')); 
+-------------------------------------------------------------+ 
| abs(datediff('2009-09-18 00:00:00', '2009-10-17 00:00:00')) | 
+-------------------------------------------------------------+ 
|               29 | 
+-------------------------------------------------------------+ 
1 row in set (0.00 sec) 

引述手冊:

DATEDIFF()回報expr1 – expr2 表示爲天的值從一個 日期到另一個。 expr1和expr2 是日期或日期和時間表達式。
只有計算中使用的值的日期部分是 。

1

你可以只減去日期時間,它會返回值:

select(now() - interval 2 day) - (now() - interval 5 day);

結果不是日期時間(這是一些十進制編碼日期 - 在這種情況下爲三天3000000),但將日期時間和時間間隔視爲相同的數據類型並不正確。

1

或者使用TIMESTAMPDIFF()是這樣的:

TIMESTAMPDIFF(微秒,yourtime,現在())

所述第一參數的MySQL日期時間單元,可以是「微秒,第二,分,小時,日,年「,這個函數表示第三個參數datetime減去第二個參數datetime。

mysql> select timestampdiff(second, "2009-09-18 00:00:00", "2009-10-17 00:00:00"); 
+---------------------------------------------------------------------+ 
| timestampdiff(second, "2009-09-18 00:00:00", "2009-10-17 00:00:00") | 
+---------------------------------------------------------------------+ 
|                2505600 | 
+---------------------------------------------------------------------+ 
1 row in set (0.00 sec)