环境:
[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