ORACLE TO_CHAR()函式中日期格式的使用
下面以例項來說明:
SQL> set linesize 200
SQL> show parameter nls_date_language
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
nls_date_language string AMERICAN
SQL> show parameter nls_date_format
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
nls_date_format string DD-MON-RR
SQL> select sysdate from dual; --不加輸出格式時,就是使用預設的日期格式 DD-MON-RR,日期描述語言也是預設的日期用語言AMERICAN
SYSDATE
------------
04-DEC-15
SQL> select to_char(sysdate,'yyyy-mm-dd') from dual; --指定輸出格式為'yyyy-mm-dd'
TO_CHAR(SYSDATE,'YYY
--------------------
2015-12-04
在日期格式中,對月份的格式主要有以下幾種:
mm: 以數字表示(1-12)
mon: 相應語言月的簡寫,比如英文中12月的簡寫是 dec.
MON: 功能同上,只不過簡寫換為大寫
month: 相應語言月的全稱,比如英文中的12月寫為december。
MONTH:功能同上,只不過換為大寫表示
SQL> select to_char(sysdate,'yyyy-mon-dd') from dual;
TO_CHAR(SYSDATE,'YYYY-MON-DD')
----------------------------------------
2015-dec-04
SQL> select to_char(sysdate,'yyyy-month-dd') from dual;
TO_CHAR(SYSDATE,'YYYY-MONTH-DD')
----------------------------------------------------------------------------------------
2015-december -04
SQL> select to_char(sysdate,'yyyy-MONTH-dd') from dual;
TO_CHAR(SYSDATE,'YYYY-MONTH-DD')
----------------------------------------------------------------------------------------
2015-DECEMBER -04
在日期格式中,對日的格式主要有以下幾種:
dd: 以數字表示(1-31)
dy: 相應語言中對週中每一天的稱謂的簡寫。比如英文中星期五的簡寫是fri.
DY: 功能同上,換為大寫表示
Dy: 功能同上,換為首字母大寫表示
day:相應語言中對週中每一天的稱謂的全稱。比如英文中星期五的全稱是friday.
DAY:功能同上,換為大寫表示
Day:功能同上,換為首字母大寫表
SQL> select to_char(sysdate,'yyyy-mm-Dy') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DY')
----------------------------------------
2015-12-Fri
SQL> select to_char(sysdate,'yyyy-mm-dy') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DY')
----------------------------------------
2015-12-fri
SQL> select to_char(sysdate,'yyyy-mm-DY') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DY')
----------------------------------------
2015-12-FRI
SQL> select to_char(sysdate,'yyyy-mm-day') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DAY')
----------------------------------------------------------------------------------------
2015-12-friday
SQL> select to_char(sysdate,'yyyy-mm-dd day') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DDDAY')
----------------------------------------------------------------------------------------------
2015-12-04 friday
格式字尾
SP:相應日期部分的英文拼寫
TH:相應日期部分日的序號,即在表示日的數字後加"th"
SQL> select to_char(sysdate,'yyyy-mm-ddth') from dual;
TO_CHAR(SYSDATE,'YYYY-MM
------------------------
2015-12-04th
SQL> select to_char(sysdate,'yyyy-mm-ddspth') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DDSPTH')
--------------------------------------------
2015-12-fourth
SQL> select to_char(sysdate,'yyyy-mmsp-dd') from dual;
TO_CHAR(SYSDATE,'YYYY-MMSP-D
----------------------------
2015-twelve-04
SQL> select to_char(sysdate,'yyyy-mmspth-dd') from dual;
TO_CHAR(SYSDATE,'YYYY-MMSPTH-DD'
--------------------------------
2015-twelfth-04
SQL> select to_char(sysdate,'yyyyth-mm-dd') from dual;
TO_CHAR(SYSDATE,'YYYYTH-
------------------------
2015th-12-04
SQL> select to_char(sysdate,'yyyy-mm-ddthsp') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DDTHSP')
--------------------------------------------
2015-12-fourth
SQL> select to_char(sysdate,'yyyysp-mm-dd') from dual;
TO_CHAR(SYSDATE,'YYYYSP-MM-DD')
------------------------------------------------------------------------------------------------
two thousand fifteen-12-04
year: 把年數用英文拼寫的方式輸出
YEAR:功能同上,只不過大寫輸出
SQL> select to_char(sysdate,'year-mm-dd') from dual;
TO_CHAR(SYSDATE,'YEAR-MM-DD')
------------------------------------------------------------------------------------------------
twenty fifteen-12-04
把nls_date_language設為中文後,相應的月份和星期幾用中文表示。
SQL> alter session set nls_date_language='simplified chinese'; --引數中間有空格時,要用單引號把整個引數括起來。
Session altered.
SQL> show parameter nls_date
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
nls_date_format string DD-MON-RR
nls_date_language string simplified chinese
SQL> select to_char(sysdate,'yyyy-mm-dd') from dual;
TO_CHAR(SYSDATE,'YYY
--------------------
2015-12-04
SQL> select to_char(sysdate,'yyyy-mon-dd') from dual;
TO_CHAR(SYSDATE,'YYYY-MON-DD')
--------------------------------
2015-12月-04
SQL> select to_char(sysdate,'yyyy-month-dd') from dual;
TO_CHAR(SYSDATE,'YYYY-MONTH-DD')
--------------------------------
2015-12月-04
中文對日期的表示沒有大小寫和縮寫的概念,Dy,DY,dy均是同樣的輸出,其它同。
SQL> select to_char(sysdate,'yyyy-mm-Dy') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DY')
----------------------------------------
2015-12-星期五
SQL> select to_char(sysdate,'yyyy-mm-DY') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DY')
----------------------------------------
2015-12-星期五
SQL> select to_char(sysdate,'yyyy-mm-day') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DAY')
----------------------------------------
2015-12-星期五
SQL> select to_char(sysdate,'yyyy-mm-dd day') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DDDAY')
----------------------------------------------
2015-12-04 星期五
year,TH和SP只限於用英文輸出表示
SQL> select to_char(sysdate,'yyyy-mm-ddspth') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DDSPTH')
--------------------------------------------
2015-12-fourth
SQL> select to_char(sysdate,'yyyysp-mm-dd') from dual;
TO_CHAR(SYSDATE,'YYYYSP-MM-DD')
------------------------------------------------------------------------------------------------
two thousand fifteen-12-04
SQL> select to_char(sysdate,'year-mm-dd') from dual;
TO_CHAR(SYSDATE,'YEAR-MM-DD')
------------------------------------------------------------------------------------------------
twenty fifteen-12-04
SQL> select to_char(sysdate,'yyyysp-mmsp-ddsp') from dual;
TO_CHAR(SYSDATE,'YYYYSP-MMSP-DDSP')
----------------------------------------------------------------------------------------------------------------------------
two thousand fifteen-twelve-four
dl:長日期格式輸出
SQL> select to_char(sysdate,'DL') from dual;
TO_CHAR(SYSDATE,'DL')
--------------------------------------------------------------
星期五, 12月 04, 2015
修改日曆為中華民國日曆後,紀年變為民國紀寫
SQL> alter session set nls_calendar='ROC Official';
Session altered.
SQL> select to_char(sysdate,'DL') from dual; --2015-1911=104,即公元2015年就是民國104年
TO_CHAR(SYSDATE,'DL')
------------------------------------------------------------
104年12月4日 星期五
e: 相應紀年的簡稱
ee: 相應紀年的全稱
SQL> select to_char(sysdate,'year-mm-dd e') from dual;
TO_CHAR(SYSDATE,'YEAR-MM-DDE')
------------------------------------------------------------------------------------------------------------------------------
one hundred four-12-04 民國
SQL> select to_char(sysdate,'EE') from dual;
TO_CHAR(SYSDATE,'EE')
------------------------------------------------------------
中華民國
可以在函式中指定NLS引數,整個引數和值要用單引號(')括起來,從而只對該次執行生效。
SQL> select to_char(sysdate,'yyyy-mm-dd','nls_calendar=GREGORIAN') from dual;
TO_CHAR(SYSDATE,'YYY
--------------------
2015-12-04
SQL> select to_char(sysdate,'yyyy-mon-dd') from dual;
TO_CHAR(SYSDATE,'YYYY-MON-DD')
--------------------------------
0104-12-04
SQL> alter session set nls_calendar=GREGORIAN;
Session altered.
SQL> show parameter nls_date
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
nls_date_format string DD-MON-RR
nls_date_language string american
SQL> alter session set nls_date_language='simplified chinese';
Session altered.
SQL> show parameter nls_date
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
nls_date_format string DD-MON-RR
nls_date_language string simplified chinese
SQL> select to_char(sysdate,'yyyy-mon-dd') from dual;
TO_CHAR(SYSDATE,'YYYY-MON-DD')
--------------------------------
2015-12月-04
SQL> select to_char(sysdate,'yyyy-mon-dd','nls_calendar=''ROC Official''') from dual; --由於引數值中有空格,所以引數值要用單引號括起來,由於其外層又有單引號,要用兩個單引號來表示一個單引號。
TO_CHAR(SYSDATE,'YYYY-MO
------------------------
0104-12-04
SQL> select to_char(sysdate,'yyyy-mon-dd day') from dual;
TO_CHAR(SYSDATE,'YYYY-MON-DDDAY')
----------------------------------------------------------
2015-12月-04 星期五
SQL> select to_char(sysdate,'yyyy-mon-dd day','nls_calendar=''ROC Official''') from dual;
TO_CHAR(SYSDATE,'YYYY-MON-DDDAY','NLS_CALENDAR=''R
--------------------------------------------------
0104-12-04 星期五
可以在格式中指定其它字元,用雙引號(")把相應的字元括起來。輸出時,原樣輸出。
SQL> select to_char(sysdate,'"民國"yyyy-mon-dd day','nls_calendar=''ROC Official''') from dual;
TO_CHAR(SYSDATE,'"民國"YYYY-MON-DDDAY','NLS_CALENDAR=''ROCOFFI
--------------------------------------------------------------
民國0104-12-04 星期五
可以在函式中指定多個NLS引數,兩個引數間用空格隔開。
SQL> select to_char(sysdate,'"民國"yyyy-mon-dd day','nls_calendar=''ROC Official'' nls_date_language=american') from dual;
TO_CHAR(SYSDATE,'"民國"YYYY-MON-DDDAY','NLS_CALENDAR=''ROCOFFICIAL''NLS_DATE_LANGUAGE=AMERICAN')
----------------------------------------------------------------------------------------------------------------------
民國0104-12-04 friday
d:用數字表示星期(1-7)。引數NLS_TERRITORY預設配置時認為一週是從週日開始的,所以,週日是1,週六是7.
SQL> select to_char(sysdate,'yyyy-mm-dd day d') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DDDAYD')
--------------------------------------------------
2015-12-04 星期五 6
若希望實現週一是1,週日是7的效果,可使用如下方法來實現
SQL> select to_char(sysdate,'yyyy-mm-dd day','nls_date_language=''numeric date language''') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DDDAY','
----------------------------------
2015-12-04 5
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22207394/viewspace-1853569/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 中的 TO_DATE 和 TO_CHAR 函式 日期處理Oracle函式
- oracle to_char函式的使用Oracle函式
- to_char函式不要使用hh格式函式
- Oracle日期格式化以及extract函式的使用Oracle函式
- oracle to_char 函式Oracle函式
- oracle to_char函式Oracle函式
- oracle中函式to_char()的用法介紹Oracle函式
- oracle中ascii函式及to_char函式使用及編碼間的轉換OracleASCII函式
- 【函式】Oracle EXTRACT()函式與to_char() 函式函式Oracle
- to_char函式格式轉換參考函式
- ORACLE to_char函式詳解Oracle函式
- Oracle的日期函式Oracle函式
- Oracle中的時間函式用法(to_date、to_char) (總結)Oracle函式
- SQL 日期格式相關函式SQL函式
- Oracle的日期函式(轉)Oracle函式
- 關於Oracle to_char()函式中的IW,WW 周別顯示Oracle函式
- 使用TO_Char()函式如何取自然周函式
- Haskell 中的日期函式Haskell函式
- oracle日期函式(1)Oracle函式
- oracle日期函式(2)Oracle函式
- oracle日期函式(3)Oracle函式
- oracle日期函式(4)Oracle函式
- oracle日期函式(5)Oracle函式
- oracle interval日期函式的bug!Oracle函式
- oracle interval日期函式的bugOracle函式
- 【Tip】使用TO_DATE和TO_CHAR函式讓Oracle自己去數數函式Oracle
- SqlServer中使用CONVERT函式實現日期格式化SQLServer函式
- oracle 日期函式介紹Oracle函式
- EXCEL中日期格式轉換為文字格式-函式TEXTExcel函式
- 【函式】Oracle函式系列(2)--數學函式及日期函式函式Oracle
- oracle 日期格式Oracle
- SQLserver中用convert函式轉換日期格式SQLServer函式
- MYSQL事件使用 日期函式MySql事件函式
- oracle 10g函式大全–日期型函式Oracle 10g函式
- oracle 10g函式大全--日期型函式Oracle 10g函式
- ORACLE日期時間函式大全Oracle函式
- [轉]oracle日期函式集錦Oracle函式
- Oracle OCP(03):字元函式、數字函式和日期函式Oracle字元函式