| 元素 | 代碼 | 示例 |
|---|---|---|
| 日 | DD / DY / DAY / DDSPTH | 12 / FRI / FRIDAY / TWELFTH |
| 月 | MM / MON / MONTH | 03 / MAR / MARCH |
| 年 | YY / YYYY | 98 / 1998 |
| 時(24h) | HH24 | 23 |
| 時(12h) | HH | 11 |
| 分/秒 | MI / SS | 59 / 59 |
TO_DATE('2002-08-26','YYYY-MM-DD')、TO_CHAR(date,'YYYY-MM-DD HH24:MI:SS')TO_CHAR(TO_DATE(222,'J'),'JSP') → Two Hundred Twenty-TwoTO_CHAR(date,'DAY') 或 TO_CHAR(date,'DAY','NLS_DATE_LANGUAGE=AMERICAN')ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN'FLOOR(SYSDATE - TO_DATE('20020405','YYYYMMDD'))TO_DATE(NULL)(不可直接用 NULL)BETWEEN '2001-12-01' AND '2001-12-31' 會漏掉 31 號中午後與 1 號中午前 → 建議用 TO_CHAR 截取日期部分比較。SELECT COUNT(*)
FROM (
SELECT ROWNUM-1 rnum FROM all_objects
WHERE ROWNUM <= TO_DATE('2002-02-28','YYYY-MM-DD') - TO_DATE('2002-02-01','YYYY-MM-DD') + 1
)
WHERE TO_CHAR(TO_DATE('2002-02-01','YYYY-MM-DD') + rnum - 1, 'D') NOT IN ('1','7');
MONTHS_BETWEEN跨月不滿月返回小數,如 1.032258…
NEXT_DAY(date, 'FRIDAY' / 6)參數可為全寫/縮寫/數字(1=周日)。
SELECT
TRUNC(A*24) AS Hours,
TRUNC(A*24*60 - 60*TRUNC(A*24)) AS Minutes,
TRUNC(A*24*60*60 - 60*TRUNC(A*24*60)) AS Seconds,
TRUNC(A*24*60*60*100 - 100*TRUNC(A*24*60*60)) AS MSeconds
FROM (SELECT SYSDATE - TRUNC(SYSDATE) A FROM dual);
SELECT
YEARS, MONTHS,
ABS(TRUNC(NEWER_DATE - ADD_MONTHS(OLDER_DATE, YEARS*12 + MONTHS))) DAYS
FROM (
SELECT
TRUNC(MONTHS_BETWEEN(NEWER_DATE, OLDER_DATE)/12) YEARS,
MOD(TRUNC(MONTHS_BETWEEN(NEWER_DATE, OLDER_DATE)), 12) MONTHS,
NEWER_DATE, OLDER_DATE
FROM (SELECT HIREDATE OLDER_DATE, ADD_MONTHS(HIREDATE, ROWNUM)+ROWNUM NEWER_DATE FROM EMP)
);
TO_CHAR(ADD_MONTHS(LAST_DAY(SYSDATE)+1, -2), 'YYYYMMDD')ADD_MONTHS(TRUNC(SYSDATE,'YEAR'),12) - TRUNC(SYSDATE,'YEAR')TO_CHAR(LAST_DAY(TO_DATE('02'||:year,'MMYYYY')),'DD') = 29 為閏年。RRRR 兩位年自動補全為當前世紀(99→1999, 01→2001);YYYY 直取(99→0099)。
NEW_TIME(sysdate, 'GMT', 'EST')SELECT TO_DATE(FLOOR(TO_CHAR(SYSDATE,'SSSSS')/300)*300,'SSSSS') FROM dual;
TO_CHAR(SYSDATE,'DDD')| 函數 | 用途 |
|---|---|
| CURRENT_DATE | 會話時區當前日期 |
| CURRENT_TIMESTAMP | 會話時區帶時區時間戳 |
| DBTIMEZONE | 數據庫時區 |
| EXTRACT(field FROM datetime) | 提取年/月/日/時/分/秒 |
| LAST_DAY(date) | 該月最後一天 |
| LOCALTIMESTAMP | 會話時區無時區時間戳 |
| ADD_MONTHS(date, n) | 加減月份 |