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

IBM DB2 常用日期操作函數速查

     編輯:DB2 教學

IBM DB2 常用日期操作函數速查

本文彙總 DB2 中高頻使用的日期/時間函數、特殊寄存器及運算規則,供開發與調試快速參考。

當前日期/時間特殊寄存器

核心日期函數

寄存器返回類型示例輸出
CURRENT DATEDATE2024-05-18
CURRENT TIMETIME14:30:05
CURRENT TIMESTAMPTIMESTAMP2024-05-18 14:30:05.123456
CURRENT TIMEZONEDECIMAL(6,0)-25200 (UTC-7:00)
函數說明示例
DATE(expr)提取日期部分DATE(CURRENT TIMESTAMP) → 2024-05-18
TIME(expr)提取時間部分TIME(CURRENT TIMESTAMP) → 14:30:05
TIMESTAMP(date, time)合成時間戳TIMESTAMP(CURRENT DATE, '12:00:00')
YEAR/MONTH/DAY(expr)提取年/月/日MONTH(CURRENT DATE) → 5
HOUR/MINUTE/SECOND(expr)提取時/分/秒HOUR(CURRENT TIME) → 14
DATEADD / + 操作日期加減間隔CURRENT DATE + 10 DAYS → 2024-05-28
DATEDIFF / - 操作日期差(天/月/年)CURRENT DATE - '2024-01-01' → 138 DAYS
DAYS(date)日期轉絕對天數(從 0001-01-01)DAYS(CURRENT DATE) → 738920
CHAR(date, format)日期格式化輸出CHAR(CURRENT DATE, ISO) → '2024-05-18'
TO_DATE / TIMESTAMP_FORMAT字符串解析為日期/時間戳TO_DATE('20240518', 'YYYYMMDD')
LAST_DAY(date)所在月最後一天LAST_DAY(CURRENT DATE) → 2024-05-31
NEXT_DAY(date, 'DAY')下一個指定週幾NEXT_DAY(CURRENT DATE, 'FRIDAY')
ROUND/TRUNC(date, 'fmt')日期四捨五入/截斷ROUND(CURRENT DATE, 'MONTH') → 2024-06-01

常用格式模型(CHAR/TO_DATE 第二參數)

  • ISO:YYYY-MM-DD
  • USA:MM/DD/YYYY
  • EUR:DD.MM.YYYY
  • JIS:YYYY-MM-DD
  • 自定義:YYYY MM DD HH24 MI SS 等

日期運算最佳實踐

  • 優先使用 DATE + INTERVAL 語法(如 CURRENT DATE + 3 MONTHS),可讀性強且自動處理月末/閏年。
  • 避免隱式字符串轉換,顯式用 DATE('2024-05-18') 或 TO_DATE。
  • 時區敏感業務統一用 TIMESTAMP WITH TIME ZONE(V10.5+)或應用層統一 UTC 存儲。
  • 索引列參與日期運算會導致索引失效,改用範圍查詢:
    WHERE created_at >= CURRENT DATE - 30 DAYS AND created_at < CURRENT DATE。

版本差異提示

  • V9.7+ 引入 TIMESTAMP_FORMAT/TO_TIMESTAMP 增強解析能力。
  • V10.5+ 支持 TIMESTAMP WITH TIME ZONE 類型。
  • 舊版本 TRANSLATE、SUBSTR 拼湊格式化已不推薦。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved