SELECT TO_NUMBER(TO_CHAR(SYSDATE, 'YYYY')) FROM dual;
-- 返回 2024 (NUMBER 型別,可直接參與運算)
常用格式模板:YYYY 4位年、YY 2位年、RRRR 兼容世紀。
SELECT EXTRACT(YEAR FROM SYSDATE) FROM dual; -- 年
SELECT EXTRACT(MONTH FROM SYSDATE) FROM dual; -- 月
SELECT EXTRACT(DAY FROM SYSDATE) FROM dual; -- 日
NUMBER,無需轉換。WHERE、GROUP BY、PARTITION BY。TIMESTAMP WITH TIME ZONE 等高精度型別。| 場景 | 推薦 | 理由 |
|---|---|---|
| 單純取年份參與運算/分組 | EXTRACT | 語法標準、解析快、型別穩定 |
| 需格式化輸出如 '2024年' | TO_CHAR | 格式模板靈活 |
| 舊版本 (9i 前) 相容 | TO_CHAR | EXTRACT 9i 才引入 |
SELECT
EXTRACT(YEAR FROM SYSDATE) AS yr,
EXTRACT(MONTH FROM SYSDATE) AS mon,
EXTRACT(DAY FROM SYSDATE) AS dy
FROM dual;