首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL DATEDIFF 參數順序「反直覺」陷阱:與 SQL Server 差異對比

     編輯:MySQL 綜合教學

核心差異:參數順序相反

數據庫語法含義結果符號
SQL ServerDATEDIFF(unit, start_date, end_date)end - startstart ≤ end → 正數
MySQLDATEDIFF(date1, date2)date1 - date2date1 ≥ date2 → 正數

直觀示例

記憶口訣

MySQL:前大後小得正數(第一個參數是「結束/較大日期」)
SQL Server:先開始後結束(符合自然語序)

實戰避坑

擴展:TIMESTAMPDIFF 統一介面(推薦)

建議: 跨庫兼容、多單位計算場景**統一用 TIMESTAMPDIFF**,參數順序符合直覺(開始、結束),功能更強。

總結

  • MySQL DATEDIFF(date1, date2) = date1 - date2,**第一個參數是被減數**
  • 想得正數 → **第一個參數填較晚/較大的日期**
  • 跨庫代碼、遷移腳本**必須檢查 DATEDIFF 參數順序**
  • 新代碼**優先用 TIMESTAMPDIFF** 避免陷阱

MySQL vs SQL Server DATEDIFF 對比截圖

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved