环境:

[oracle@localhost ~]$ sqlplus -v


SQL*Plus: Release 10.2.0.1.0 - Production


sys@ORCL> alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';


Session altered.


sys@ORCL> alter session set nls_language='simplified chinese';


Session altered.


sys@ORCL> select sessiontimezone from dual;


SESSIONTIMEZONE

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

+08:00



㈠ 格式串:/ - : # 等等

指定返回字符串的分隔符

sys@ORCL> select to_char(sysdate,'yyyy/mm/dd') "/" from dual;


/

----------

2013/01/03


sys@ORCL> select to_char(sysdate,'yyyy-mm-dd') "-" from dual;


-

----------

2013-01-03


sys@ORCL> select to_char(sysdate,'yyyy#mm#dd') "#" from dual;


#

----------

2013#01#03



㈡ 常见标识

公元标识:AD 或 BC

sys@ORCL> select to_char(sysdate,'AD yyyy-mm-dd') "AD" from dual;


AD

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

公元 2013-01-03

子午线标识:AM PM

sys@ORCL> select to_char(sysdate,'yyyy-mm-dd AM hh24:mi:ss') "AM" from dual;


AM

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

2013-01-03 下午 19:24:36



世纪标识:CC SCC

S前缀指定如遇公元前的显示,会在显示前加(-)

如果年份中最后两位数字在01到99(含)之间,则返回值等于年份前两位+1

如果年份中最后两位数字是00,则返回值与年份前两位相同

sys@ORCL> select to_char(to_date('2013-1-3','YYYY-MM-DD'),'CC') "CC" from dual;


CC

--

21


sys@ORCL> select to_char(to_date('2000-1-3','YYYY-MM-DD'),'CC') "CC" from dual;


CC

--

20



㈢ 常见的字母缩写要义


D 指定日期在周中的数值(范围:1-7)

DD 指定日期在当月中的天数(范围:1-31)

DDD 指定日期在当年中的天数(范围:1-366)

DAY 指定日期在周中的名称

sys@ORCL> select to_char(to_date('2013-1-3','yyyy-mm-dd'),'d') "dd" from dual;


d

-

5


sys@ORCL> select to_char(to_date('2013-1-3','yyyy-mm-dd'),'dd') "dd" from dual;


dd

--

03


sys@ORCL> select to_char(to_date('2013-1-3','yyyy-mm-dd'),'ddd') "dd" from dual;


ddd

---

003


sys@ORCL> select to_char(to_date('2013-1-3','yyyy-mm-dd'),'day') "day" from dual;


day

---------

星期四



MON 返回指定日期的月份简写

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

sys@ORCL> select to_char(sysdate,'mon') "mon" from dual;


mon

--------

1月



YEAR/SYEAR 返回字符型年,此处s前缀与SCC处相同

YYYY/SYYYY 返回数字型年,此处s前缀与SCC处相同

MM 返回指定日期的月份(范围:1-12)

HH 小时(范围:1-12)

HH12 小时(范围:1-12)

HH24 小时(范围:0-23)

MI 返回指定时间的分钟(范围0-59)

SS 返回指定时间的秒数(范围:0-59)

sys@ORCL> select to_char(sysdate,'year') "year" from dual;


year

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

twenty thirteen


sys@ORCL> select to_char(sysdate,'am hh12') "hh12" from dual;


hh12

---------

下午 08



FF[1-9] 返回毫秒数,可指定长度1-9,默认6位

Y,YYY 返回有逗号分隔显示的年

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

sys@ORCL> select to_char(sysdate,'y') from dual;


T

-

3


sys@ORCL> select to_char(sysdate,'yy') from dual;


TO

--

13


sys@ORCL> select to_char(sysdate,'yyy') from dual;


TO_

---

013


sys@ORCL> select to_char(sysdate,'y,yyy') from dual;


TO_CH

-----

2,013


sys@ORCL> select to_char(systimestamp,'ff4') from dual;


TO_CHAR(S

---------

7858



W 返回指定日期在当月中的第X周(范围:1-5)

WW 返回指定日期在当年中的第X周(范围:1-53)

IW 指定日期在当年中第X周(范围:1-52或1-53(润年))

sys@ORCL> select to_char(to_date('2013-1-3','yyyy-mm-dd'),'ww') from dual;


TO

--

01


sys@ORCL> select to_char(to_date('2013-1-3','yyyy-mm-dd'),'iw') from dual;


TO

--

01


sys@ORCL> select to_char(sysdate,'w') from dual;


T

-

1



Q 返回指定日期的季度(范围:1-4)

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

SSSSS 返回自午夜到指定时间共逝去的秒数(范围:0-86399)

sys@ORCL> select to_char(to_date('2013-1-3','yyyy-mm-dd'),'q') from dual;


T

-

1


sys@ORCL> select to_char(sysdate,'J') from dual;


TO_CHAR

-------

2456296


oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html