TIMESTAMPDIFF() 回傳兩個日期/時間表達式的**整數差值**,單位由參數指定,支援秒、分、時、天、月、年。
TIMESTAMPDIFF(interval, datetime_expr1, datetime_expr2)
-- 回傳 expr2 - expr1 的差值(注意順序:expr2 減 expr1)
| 關鍵字 | 別名 | 說明 |
|---|---|---|
SECOND | SECONDS | 秒 |
MINUTE | MINUTES | 分 |
HOUR | HOURS | 時 |
DAY | DAYS | 天 |
MONTH | MONTHS | 月 |
YEAR | YEARS | 年 |
-- 月份差(結果為 -1,因 9月 比 10月 早)
SELECT TIMESTAMPDIFF(MONTH, '2009-10-01', '2009-09-01');
-- 年齡計算
SELECT TIMESTAMPDIFF(YEAR, birth_date, CURDATE()) AS age FROM users;
-- 兩時間戳相差分鐘數
SELECT TIMESTAMPDIFF(MINUTE, '2023-01-01 10:00:00', '2023-01-01 10:30:00'); -- 30
DATEDIFF(d1, d2):僅支援**天**單位,回傳 d1 - d2TIMESTAMPDIFF:支援多單位,精確到秒,參數順序相反(expr2 - expr1)DATETIME 或 TIMESTAMP