2013年(350)
分类: Oracle
2013-04-24 16:24:49
环境:
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前缀指定如遇公元前的显示,会在显示前加(-)
提示:
l 如果年份中最后两位数字在01到99(含)之间,则返回值等于年份前两位+1
l 如果年份中最后两位数字是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')
--------------------
2454449
SSSSS 返回自午夜到指定时间共逝去的秒数(范围:0-86399)
例如:
SQL> select to_char(sysdate,'sssss') from dual;
TO_CHAR(SYSDATE,'SSSSS')
------------------------
55141