MySQL中使用時間戳來記錄事件的時間,時間戳是一個表示從1970年1月1日0時0分0秒(UTC)至時間點所經過的秒數。
在MySQL中計算時間差通常使用TIMESTAMPDIFF函數,它包含三個參數,分別為時間單位、要計算時間差的開始時間和結束時間。例如,計算兩個時間點之間的天數:
SELECT TIMESTAMPDIFF(DAY, '2021-01-01 00:00:00', '2021-01-05 00:00:00')
上述SQL語句會返回4,表示2021年1月1日0點到2021年1月5日0點經歷了4天。
如果要計算兩個時間點之間的小時數,只需將時間單位修改為HOUR即可:
SELECT TIMESTAMPDIFF(HOUR, '2021-01-01 00:00:00', '2021-01-05 12:00:00')
上述SQL語句會返回108,表示2021年1月1日0點到2021年1月5日中午12點經歷了108個小時。
除了使用TIMESTAMPDIFF函數,也可以使用DATEDIFF函數來計算兩個日期之間的天數。例如:
SELECT DATEDIFF('2021-01-05', '2021-01-01')
上述SQL語句會返回4,與使用TIMESTAMPDIFF函數得到的結果相同。