標準語法
INSERT INTO date_table (dt_col) VALUES (TO_DATE('1984-10-02', 'YYYY-MM-DD'));
常用格式模型
| 模型 | 含義 | 示例 |
| YYYY | 4位年份 | 2024 |
| MM | 2位月份 (01-12) | 10 |
| DD | 2位日期 (01-31) | 02 |
| HH24 | 24制小時 (00-23) | 14 |
| MI | 分鐘 (00-59) | 30 |
| SS | 秒 (00-59) | 59 |
| YYYY-MM-DD HH24:MI:SS | 完整日期時間 | 2024-10-02 14:30:59 |
最佳實踐
- **永遠顯式指定格式掩碼**,避免依賴
NLS_DATE_FORMAT 會話參數導致跨環境失效。
- PL/SQL 中優先用
DATE '2024-10-02' 字面值 (ISO 標準,無需 TO_DATE)。
- 批量導入時,外部表 / SQL*Loader 指定
DATE_FORMAT 參數,比逐行 TO_DATE 快數量級。
反面教材
-- 危險:依賴隱式轉換
INSERT INTO t VALUES ('02-OCT-84'); -- 視 NLS_DATE_FORMAT 而定,極易出錯
-- 正確:顯式轉換
INSERT INTO t VALUES (TO_DATE('02-OCT-1984', 'DD-MON-YYYY'));