首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL TIMESTAMPDIFF 計算時間差完整指南

     編輯:MySQL 資料庫相關知識

MySQL 兩日期時間差計算:TIMESTAMPDIFF 用法詳解

TIMESTAMPDIFF() 回傳兩個日期/時間表達式的**整數差值**,單位由參數指定,支援秒、分、時、天、月、年。

語法

TIMESTAMPDIFF(interval, datetime_expr1, datetime_expr2)
-- 回傳 expr2 - expr1 的差值(注意順序:expr2 減 expr1)

支援的 interval 單位

關鍵字別名說明
SECONDSECONDS秒
MINUTEMINUTES分
HOURHOURS時
DAYDAYS天
MONTHMONTHS月
YEARYEARS年

實例

-- 月份差(結果為 -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 vs TIMESTAMPDIFF

  • DATEDIFF(d1, d2):僅支援**天**單位,回傳 d1 - d2
  • TIMESTAMPDIFF:支援多單位,精確到秒,參數順序相反(expr2 - expr1)

常見坑點

  • 參數順序易記錯:**第二個參數減第一個參數**
  • 月/年差值按「自然月/年」計算,非固定 30 天/365 天
  • 日期時間型別混用時會隱式轉換,建議統一用 DATETIME 或 TIMESTAMP
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved