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

Oracle 日期時間函數實戰速查:16 種常見查詢場景

     編輯:Oracle 資料庫基礎

前言

日期時間處理是業務開發高頻需求。Oracle 提供豐富的 TO_CHAR 格式模型與日期運算函數。本文彙整 16 種實用場景,附 SQL 可直接複製套用。

場景與 SQL 範例

#需求SQL 範例關鍵格式/函數
1本月第幾週SELECT TO_CHAR(SYSDATE, 'W') FROM DUAL;W (月內週數 1~5)
2本週第幾天 (週日=1)SELECT TO_CHAR(SYSDATE, 'D') FROM DUAL;D (週內天數 1~7)
3中文星期名稱SELECT TO_CHAR(SYSDATE, 'DAY', 'NLS_DATE_LANGUAGE=TRADITIONAL CHINESE') FROM DUAL;DAY + NLS 參數
4索引欄位日期查詢避免隱性轉換ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';Session 級格式化
5當前日期時間SELECT SYSDATE FROM DUAL;SYSDATE
6今天 00:00:00 / 23:59:59SELECT TRUNC(SYSDATE), TRUNC(SYSDATE) + 0.99999 FROM DUAL;TRUNC + 小數天數
7明天 00:00:00SELECT TRUNC(SYSDATE + 1) FROM DUAL;TRUNC(SYSDATE+1)
8本月 1 號SELECT TRUNC(SYSDATE, 'MM') FROM DUAL;TRUNC(date, 'MM')
9下月 1 號SELECT TRUNC(ADD_MONTHS(SYSDATE, 1), 'MM') FROM DUAL;ADD_MONTHS + TRUNC
10本月最後一天SELECT LAST_DAY(SYSDATE) FROM DUAL;LAST_DAY
11本年每一天列表SELECT TRUNC(SYSDATE,'YYYY') + ROWNUM - 1 FROM DUAL CONNECT BY LEVEL <= 366;CONNECT BY 生成序列
12今天是今年第幾天SELECT TO_CHAR(SYSDATE, 'DDD') FROM DUAL;DDD (年積日)
13日期加 2 年SELECT ADD_MONTHS(SYSDATE, 24) FROM DUAL;ADD_MONTHS (月為單位)
14判斷今年是否閏年SELECT DECODE(TO_CHAR(LAST_DAY(TRUNC(SYSDATE,'Y')+31), 'DD'), '29', '閏年', '平年') FROM DUAL;2/29 存在判斷
15判斷兩年後是否閏年SELECT DECODE(TO_CHAR(LAST_DAY(TRUNC(ADD_MONTHS(SYSDATE,24),'Y')+31), 'DD'), '29', '閏年', '平年') FROM DUAL;同上邏輯
16取得季度 (1~4)SELECT TO_CHAR(SYSDATE, 'Q') FROM DUAL;Q (季度)

常用格式元素速查


YYYY / YY    年 (4/2 位)
MM           月 (01~12)
DD           日 (01~31)
HH24 / HH    時 (24/12 制)
MI           分
SS           秒
DAY / DY     星期名稱 / 縮寫
D            週內天數 (1=週日)
W            月內週數
WW           年內週數
DDD          年內天數
Q            季度

日期運算口訣

  • 日期 ± 數字 = 日期 ± 天數 (可為小數,1 = 1 天)。
  • ADD_MONTHS(date, n):月份運算,自動處理月末 (1/31 + 1月 = 2/28 或 2/29)。
  • MONTHS_BETWEEN(d1, d2):兩日期月差 (含小數)。
  • NEXT_DAY(date, 'FRIDAY'):下一個指定週幾的日期。
  • TRUNC(date, 'MM/YYYY/Q/W'):截斷至月首/年首/季首/週首。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved