ORACLE日期時間的格式化參數大全

經常遇到有朋友問詢關於日期時間格式化的問題(或可以通過格式化輕易解決),經過參考Oracle SQL Reference官方文檔,並附上詳細的應用示例綜合成文,希望能夠對大家學習和使用有所幫助。本篇可視爲"oracle著名及非著名函數介紹"的補充!

  環境:

SQL> select *from v$version;

BANNER

----------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod

PL/SQL Release 10.2.0.3.0 - Production

CORE 10.2.0.3.0 Production

TNS for 32-bit Windows: Version 10.2.0.3.0 - Production

NLSRTL Version 10.2.0.3.0 - Production

SQL> SELECT SESSIONTIMEZONE FROM DUAL;

 

SESSIONTIMEZONE

---------------------------------------------------------------------------

+08:00

SQL> show parameter nls;

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

nls_date_format string yyyy-mm-dd hh24:mi:ss

nls_language string SIMPLIFIED CHINESE

一、 日期及時間一

格式串 說明及示例

---------- -----------------------------------------------------------

-/,.;: 指定返回字串分隔符

例如:

SQL> select to_char(sysdate,¨yyyy/mm/dd¨) from dual;

 

TO_CHAR(SYSDATE,¨YYYY/MM/DD¨)

-----------------------------

2007/12/14

SQL> select to_char(sysdate,¨yyyy-mm-dd¨) from dual;

 

TO_CHAR(SYSDATE,¨YYYY-MM-DD¨)

-----------------------------

2007-12-14
AD/A.D. 公元標識

例如:

SQL> select to_char(sysdate,¨AD YYYY-MM-DD¨) from dual;

 

TO_CHAR(SYSDATE,¨ADYYYY-MM-DD¨

------------------------------

公元 2007-12-14
BC/B.C. 公元標識

例如

SQL> select to_char(sysdate,¨BC YYYY-MM-DD¨) from dual;

 

TO_CHAR(SYSDATE,¨BCYYYY-MM-DD¨

------------------------------

公元 2007-12-14

AM/A.M. 子午線標識

例如:

SQL> select to_char(sysdate,¨YYYY-MM-DD AM hh24:mi:ss¨) from dual;

 

TO_CHAR(SYSDATE,¨YYYY-MM-DDAMH

------------------------------

2007-12-14 下午 13:41:58
PM/P.M. 子午線標識

例如:

SQL> select to_char(sysdate,¨YYYY-MM-DD PM hh24:mi:ss¨) from dual;

 

TO_CHAR(SYSDATE,¨YYYY-MM-DDPMH

------------------------------

2007-12-14 下午 13:42:23
CC/SCC 世紀標識,S前綴指定如遇公元前的顯示,會在顯示前加(-)

  提示:

  • 如果年份中最後兩位數字在01到99(含)之間,則返回值等於年份前兩位+1

  • 如果年份中最後兩位數字是00,則返回值與年份前兩位相同

例如:

SQL> select to_char(to_date(¨2000-8-3¨,¨YYYY-MM-DD¨),¨cc¨) from dual;

 

TO_CHAR(TO_DATE(¨2000-8-3¨,¨YY

------------------------------

20

 

SQL> select to_char(to_date(¨2001-8-3¨,¨YYYY-MM-DD¨),¨cc¨) from dual;

 

TO_CHAR(TO_DATE(¨2001-8-3¨,¨YY

------------------------------

21
D 指定日期在週中的數值(範圍:1-7)

例如:

SQL> select to_char(to_date(¨2007-12-14¨,¨yyyy-mm-dd¨),¨D¨) from dual;

 

TO_CHAR(TO_DATE(¨2007-12-14¨,¨

------------------------------

6
DD 指定日期在當月中的天數(範圍:1-31)

例如:

SQL> select to_char(to_date(¨2007-12-14¨,¨yyyy-mm-dd¨),¨DD¨) from dual;

 

TO_CHAR(TO_DATE(¨2007-12-14¨,¨

------------------------------

14
DDD 指定日期在當年中的天數(範圍:1-366)

例如:

SQL> select to_char(to_date(¨2007-12-14¨,¨yyyy-mm-dd¨),¨DDD¨) from dual;

 

TO_CHAR(TO_DATE(¨2007-12-14¨,¨

------------------------------

348
DAY 指定日期在週中的名稱

例如:

SQL> select to_char(to_date(¨2007-12-14¨,¨yyyy-mm-dd¨),¨Day¨) from dual;

 

TO_CHAR(TO_DATE(¨2007-12-14¨,¨

------------------------------

星期五
MON 返回指定日期的月份簡寫

例如:

SQL> select to_char(sysdate,¨MON¨) from dual;

 

TO_CHAR(SYSDATE,¨MON¨)

----------------------

12 月

與DY同,中文看不出簡寫效果。

MONTH 返回指定日期的月份全稱

例如:

SQL> select to_char(sysdate,¨MONTH¨) from dual;

 

TO_CHAR(SYSDATE,¨MONTH¨)

------------------------

12 月
YEAR/SYEAR 返回字符型年,此處s前綴與SCC處相同

例如:

SQL> select to_char(sysdate,¨year¨) from dual;

 

TO_CHAR(SYSDATE,¨YEAR¨)

------------------------------------------

two thousand seven
YYYY/SYYYY 返回數字型年,此處s前綴與SCC處相同

例如:

SQL> select to_char(sysdate,¨yyyy¨) from dual;

 

TO_CHAR(SYSDATE,¨YYYY¨)

-----------------------

2007
MM 返回指定日期的月份(範圍:1-12)

例如:

SQL> select to_char(sysdate,¨MM¨) from dual;

 

TO_CHAR(SYSDATE,¨MM¨)

---------------------

12
HH 小時(範圍:1-12)

例如:

SQL> select to_char(sysdate,¨am hh¨) from dual;

 

TO_CHAR(SYSDATE,¨AMHH¨)

-----------------------

下午 02
HH12 小時(範圍:1-12)

例如:

SQL> select to_char(sysdate,¨am hh12¨) from dual;

 

TO_CHAR(SYSDATE,¨AMHH12¨)

-------------------------

下午 02
HH24 小時(範圍:0-23)

例如:

SQL> select to_char(sysdate,¨am hh24¨) from dual;

 

TO_CHAR(SYSDATE,¨AMHH24¨)

-------------------------

下午 14
MI 返回指定時間的分鐘(範圍0-59)

例如:

SQL> select to_char(sysdate,¨MI¨) from dual;

 

TO_CHAR(SYSDATE,¨MI¨)

---------------------

05
SS 返回指定時間的秒數(範圍:0-59)

例如:

SQL> select to_char(sysdate,¨ss¨) from dual;

 

TO_CHAR(SYSDATE,¨SS¨)

---------------------

34
FF[1-9] 返回毫秒數,可指定長度1-9,默認6位

例如:

SQL> select to_char(systimestamp,¨ff4¨) from dual;

TO_CHAR(S

---------

6710
Y,YYY 返回有逗號分隔顯示的年

例如:

SQL> select to_char(sysdate,¨y,yyy¨) from dual;

 

TO_CHAR(SYSDATE,¨Y,YYY¨)

------------------------

2,007
I/IY/IYY/IYYY 返回ISO標準年

例如:

SQL> select to_char(to_date(¨187-4-3¨,¨yyyy-mm-dd¨),¨IYYY¨) from dual;

 

TO_CHAR(TO_DATE(¨187-4-3¨,¨YYY

------------------------------

0187
Y/YY/YYY 以指定長度返回日期的年份

例如:

SQL> select to_char(sysdate,¨yy¨) from dual;

 

TO_CHAR(SYSDATE,¨YY¨)

---------------------

07
W 返回指定日期在當月中的第X周(範圍:1-5)

例如:

SQL> select to_char(to_date(¨2007-6-18¨,¨yyyy-mm-dd¨),¨w¨) from dual;

 

TO_CHAR(TO_DATE(¨2007-6-18¨,¨Y

------------------------------

3
WW 返回指定日期在當年中的第X周(範圍:1-53)

例如:

SQL> select to_char(to_date(¨2007-6-18¨,¨yyyy-mm-dd¨),¨ww¨) from dual;

 

TO_CHAR(TO_DATE(¨2007-6-18¨,¨Y

------------------------------

25
IW 指定日期在當年中第X周(範圍:1-52或1-53(潤年))

例如:

SQL> select to_char(sysdate,¨IW¨) from dual;

 

TO_CHAR(SYSDATE,¨IW¨)

---------------------

50
RM 以羅馬數字形式返回月份(範圍I-XII)

例如:

SQL> select to_char(to_date(¨2007-11-3¨,¨yyyy-mm-dd¨),¨RM¨) from dual;

 

TO_CHAR(TO_DATE(¨2007-11-3¨,¨Y

------------------------------

XI
Q 返回指定日期的季度(範圍:1-4)

例如:

SQL> select to_char(to_date(¨2007-2-3¨,¨yyyy-mm-dd¨),¨q¨) from dual;

 

TO_CHAR(TO_DATE(¨2007-2-3¨,¨YY

------------------------------

1
J 自公元前 4712 年1月1日到指定日期的總天數

例如:

SQL> select to_char(sysdate,¨J¨) from dual;

 

TO_CHAR(SYSDATE,¨J¨)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章