1. 儲存機制
- 內部固定 7 位元組:世紀、年、月、日、時、分、秒 (無毫秒)。
- 精度至秒;前端若為毫秒 (如 PowerBuilder) 需注意截斷。
2. 顯示格式由 NLS 決定
| 字元集 | 預設顯示範例 |
| US7ASCII / WE8ISO8859P1 | 28-JAN-2003 |
| ZHS16GBK / ZHT16BIG5 | 2003-1月-28 |
查看目前 Session 格式:SELECT SYSDATE FROM DUAL;
3. 插入日期資料兩大法
- 遵循 Session 格式:直接寫字串,如
'28-JAN-2003' (英文環境)。
- 使用轉換函數 (強烈建議):
TO_DATE('2003-01-28 15:23:38', 'YYYY-MM-DD HH24:MI:SS') 插入
TO_CHAR(sysdate, 'YYYY-MM-DD HH24:MI:SS') 查詢
4. 修改 Session 日期格式三法
| 方法 | 指令/位置 | 生效範圍 | 優先序 |
| ALTER SESSION | ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'; | 目前 Session | 最高 |
| 登錄表 (Windows) | HKLM\SOFTWARE\ORACLE\HOME0\NLS_DATE_FORMAT | 所有 sqlplus 視窗 | 中 |
| glogin.sql | $ORACLE_HOME/sqlplus/admin/glogin.sql 加入 ALTER SESSION | 所有 sqlplus Session | 中 |
ALTER SESSION 優先級最高,覆蓋登錄表與 glogin.sql 設定。
5. 最佳實務建議
- 程式碼/批次腳本 務必使用 TO_DATE/TO_CHAR 顯式指定格式,不依賴環境預設。
- 資料庫欄位 嚴禁用 VARCHAR2 存日期,失去運算、索引、分區、統計資訊優勢。
- 常用格式元素:
YYYY 4 位年、MM 月、DD 日、HH24 24 小時、MI 分、SS 秒、MON 月縮寫、DAY 星期。
- 上一篇文章: Oracle 實用技巧精選:無用索引偵測、長運行操作監控、ORA-01555 解決方案
- 下一篇文章: Oracle 命中率查詢與 SGA 參數調優速查表
Copyright ©
程式碼之家 All Rights Reserved