一、函數介紹
要計算時間差,我們需要用到MySQL的兩個函數:
DATEDIFF(date1, date2)
TIMESTAMPDIFF(unit, datetime1, datetime2)
DATEDIFF函數返回兩個日期之間的天數差。
TIMESTAMPDIFF函數返回兩個日期之間的時間差,可以由參數unit指定,如YEAR、MONTH、DAY、HOUR、MINUTE、SECOND等。
二、計算兩個日期之間相差的天數
我們可以使用DATEDIFF函數直接計算兩個日期之間相差的天數。
SELECT DATEDIFF('2019-08-01', '2019-07-01') AS day_diff;
運行結果為1,表示2019-08-01與2019-07-01相差一天。
三、計算兩個日期時間之間相差的天數
如果我們要計算兩個日期時間間隔的天數,就需要用到TIMESTAMPDIFF函數。
SELECT TIMESTAMPDIFF(DAY, '2019-08-01 12:40:00', '2019-08-03 23:11:00') AS day_diff;
運行結果為2,表示2019-08-01 12:40:00與2019-08-03 23:11:00相差兩天。
四、計算兩個日期時間之間相差的小時數和分鐘數
我們只需將上方SQL語句中的DAY改為HOUR和MINUTE,並分別執行,即可得到兩個時間之間相差的小時數和分鐘數。
SELECT TIMESTAMPDIFF(HOUR, '2019-08-01 12:40:00', '2019-08-03 23:11:00') AS hour_diff;
SELECT TIMESTAMPDIFF(MINUTE, '2019-08-01 12:40:00', '2019-08-03 23:11:00') AS minute_diff;
運行結果分別為59和1551,表示2019-08-01 12:40:00與2019-08-03 23:11:00相差59小時和1551分鐘。
五、處理時間戳
如果我們有一個UNIX時間戳,需要將其轉換為日期或時間,也有相應的MySQL函數可以使用。
SELECT DATE_FORMAT(FROM_UNIXTIME(1565117223), '%Y-%m-%d %H:%i:%s') AS date_time;
運行結果為2019-08-06 10:20:23,表示將時間戳1565117223轉換為日期時間格式。
六、使用時間函數
如果我們需要在SQL中使用當前時間,可以使用NOW()函數,它返回當前日期和時間,格式為YYYY-MM-DD HH:MM:SS
SELECT NOW() AS current_time;
運行結果為當前時間。
七、總結
MySQL提供了豐富的函數來計算日期和時間之間的差別,使得我們能夠高效地進行數據處理和分析。
使用日期函數需要注意各種日期格式,如YY-MM-DD、YYYY-MM-DD、YYYY-MM-DD HH:MM:SS等。
原創文章,作者:TYNYC,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/333934.html