MySQL timediff()函数
轉載自??MySQL timediff()函數
MySQL TIMEDIFF函數介紹
TIMEDIFF返回兩個TIME或DATETIME值之間的差值。 請參閱TIMEDIFF函數的以下語法。
TIMEDIFF(dt1, dt2);TIMEDIFF函數接受兩個必須為相同類型的參數,即TIME或DATETIME。?TIMEDIFF函數返回表示為時間值的dt1 - dt2的結果。
因為TIMEDIFF函數返回TIME值,所以其結果被限制在從-838:59:59到838:59:59的TIME值范圍內。
請注意,TIMEDIFF函數接受TIME或DATETIME類型的值。要比較兩個DATE或DATETIME值之間的差異,可以使用DATEDIFF函數。
MySQL TIMEDIFF函數示例
讓我們舉一個例子來計算兩個時間值之間的差異。
mysql> SELECT TIMEDIFF('12:00:00','10:00:00') diff; +----------+ | diff | +----------+ | 02:00:00 | +----------+ 1 row in set在這個例子中,我們計算了12:00:00和10:00:00之間的差值為:02:00:00。
以下示例計算兩個DATETIME值之間的差異值:
mysql> SELECT TIMEDIFF('2010-01-01 01:00:00', '2010-01-02 01:00:00') diff; +-----------+ | diff | +-----------+ | -24:00:00 | +-----------+ 1 row in set如果任一參數為NULL,TIMEDIFF函數將返回NULL。
mysql> SELECT TIMEDIFF('2010-01-01',NULL) diff; +------+ | diff | +------+ | NULL | +------+ 1 row in set, 1 warning (0.00 sec)如果傳遞兩個不同類型的參數,一個是DATETIME,另一個是TIME,TIMEDIFF函數也返回NULL。
mysql> SELECT TIMEDIFF('2010-01-01 10:00:00','10:00:00') diff; +------+ | diff | +------+ | NULL | +------+ 1 row in set?
MySQL TIMEDIFF函數和截斷的不正確的時間值
請考慮以下示例:
mysql> SELECT TIMEDIFF('2009-03-01 00:00:00', '2009-01-01 00:00:00') diff; +-----------+ | diff | +-----------+ | 838:59:59 | +-----------+ 1 row in set, 1 warning (0.00 sec)可以看到,有一個警告。下面來看看看使用SHOW WARNINGS語句是什么。
mysql> SHOW WARNINGS; +---------+------+----------------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '1416:00:00' | +---------+------+----------------------------------------------+ 1 row in set所以結果應該是1416小時,但是如前所述,TIMEDIFF函數的結果是一個TIME值,范圍是從-838:59:59到838:59:59。 因此,MySQL會截斷結果。
要解決此問題,您需要使用TIMESTAMPDIFF函數,如下所示:
mysql> SELECT TIMESTAMPDIFF(HOUR, '2018-01-01 00:00:00', '2018-03-01 00:00:00') diff; +------+ | diff | +------+ | 1416 | +------+ 1 row in set在本教程中,您已經學習了如何使用MySQL?TIMEDIFF函數來計算兩個TIME或DATETIME值之間的差值。
總結
以上是生活随笔為你收集整理的MySQL timediff()函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SiteGround vs FastCo
- 下一篇: MySQL week()函数