首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 日期語言格式調整:NLS_DATE_LANGUAGE 實戰應用

     編輯:Oracle 資料庫相關知識

核心概念

NLS_DATE_LANGUAGE 控制日期格式化輸出時「月份名稱」與「星期名稱」的顯示語言。可在 Session 層級動態調整,不影響資料儲存。

查看當前 NLS 參數

SELECT * FROM V$NLS_PARAMETERS WHERE PARAMETER LIKE '%DATE%';

實戰演示:中英文切換

設定為繁體中文(SIMPLIFIED CHINESE 亦可)

ALTER SESSION SET NLS_DATE_LANGUAGE = 'SIMPLIFIED CHINESE';
-- 或 ALTER SESSION SET NLS_DATE_LANGUAGE = 'TRADITIONAL CHINESE';

SELECT TO_CHAR(SYSDATE, 'yyyy-Mon-day') FROM DUAL;
-- 結果:2009-5月 -星期三

設定為英文

ALTER SESSION SET NLS_DATE_LANGUAGE = 'AMERICAN';

SELECT TO_CHAR(SYSDATE, 'yyyy-Mon-day') FROM DUAL;
-- 結果:2009-May-wednesday

常用語言代碼對照

語言NLS_DATE_LANGUAGE 值月份範例星期範例
美式英文AMERICANJAN, FEB, MAR...MONDAY, TUESDAY...
簡體中文SIMPLIFIED CHINESE1月, 2月...星期一, 星期二...
繁體中文TRADITIONAL CHINESE1月, 2月...星期一, 星期二...
日文JAPANESE1月, 2月...月曜日, 火曜日...
德文GERMANJAN, FEB...MONTAG, DIENSTAG...
法文FRENCHJANV, FEVR...LUNDI, MARDI...

應用場景

  • 多語系報表輸出:同一 SQL,切換 Session 參數即可產出不同語言報表
  • 跨國團隊協作:開發/測試/生產環境統一語言設定
  • 資料匯出:依客戶語言需求動態調整日期顯示格式

相關參數

參數影響範圍
NLS_DATE_FORMAT預設日期格式(如 'YYYY-MM-DD HH24:MI:SS')
NLS_TIMESTAMP_FORMAT預設時間戳格式
NLS_TERRITORY地區設定(影響週起始日、數字/貨幣格式)
NLS_LANGUAGE訊息語言、月份/星期名稱(含 DATE_LANGUAGE)

最佳實踐

  1. 應用層明確指定 TO_CHAR(date, 'fmt', 'NLS_DATE_LANGUAGE=AMERICAN'),避免依賴 Session 設定
  2. 資料庫層級設定 NLS_DATE_LANGUAGE 為系統預設語言
  3. 跨語言系統儲存時一律用 DATE/TIMESTAMP 型別,勿存格式化字串
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved