多种日期格式:
YYYY:四位表示的年份
YYY,YY,Y:年份的最后三位、两位或一位,缺省为当前世纪
MM:01~12的月份编号
MONTH:九个字符表示的月份,右边用空格填补
MON:三位字符的月份缩写
WW:一年中的星期
D:星期中的第几天
DD:月份中的第几天
DDD:年所中的第几天
DAY:九个字符表示的天的全称,右边用空格补齐
HH,HH12:一天中的第几个小时,12进制表示法
HH24:一天中的第几个小时,取值为00~23
MI:一小时中的分钟
SS:一分钟中的秒
SSSSS:从午夜开始过去的秒数
设置日期语言
ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';
一。基本运算部分
A)to_char函数
1. 年的运算
1.1 Y或YY或YYY 年的最后一位,两位或三位,YYYY 四位年份,IYYY ISO标准的四位年份
SQL> Select to_char(sysdate,'Y'),to_char(sysdate,'YY'),to_char(sysdate,'YYY'),to_char(sysdate,'YYYY'),TO_CHAR(SYSTIMESTAMP, 'IYYY') from dual;
TO_CHAR(SYSDATE,'Y') TO_CHAR(SYSDATE,'YY') TO_CHAR(SYSDATE,'YYY') TO_CHAR(SYSDATE,'YYYY') TO_CHAR(SYSTIMESTAMP,'IYYY')
-------------------- --------------------- ---------------------- ----------------------- ----------------------------
9 09 009 2009 2009
1.2 YEAR
SQL> SELECT TO_CHAR(SYSTIMESTAMP, 'YEAR') from dual;
TO_CHAR(SYSTIMESTAMP,'YEAR')
------------------------------------------
TWO THOUSAND NINE
SQL> SELECT TO_CHAR(SYSTIMESTAMP, 'YEAR','NLS_DATE_LANGUAGE = American') from dual;
TO_CHAR(SYSTIMESTAMP,'YEAR','N
------------------------------------------
TWO THOUSAND NINE
2.Q 季度 1~3月为第一季度,2表示第二季度。
SQL> Select to_char(sysdate,'Q') from dual;
TO_CHAR(SYSDATE,'Q')
--------------------
1
3. 月份数
3.1 MM 月份数
SQL> Select to_char(sysdate,'MM') from dual;
TO_CHAR(SYSDATE,'MM')
---------------------
02
3.2 Month 用9个字符长度表示的月份名
SQL> Select to_char(sysdate,'Month') from dual;
TO_CHAR(SYSDATE,'MONTH')
------------------------
2月
3.3 月份函数汇总:
SQL> Select to_char(sysdate,'Month'),
2 to_char(sysdate,'mon'),
3 to_char(sysdate,'Month'),
4 to_char(sysdate,'mon','NLS_DATE_LANGUAGE = American'), --三位字符的月份缩写全部小写
5 to_char(sysdate,'Mon','NLS_DATE_LANGUAGE = American'), --三位字符的月份缩写首字母大些
6 to_char(sysdate,'MON','NLS_DATE_LANGUAGE = American'), --三位字符的月份缩写全部大些
7 to_char(sysdate,'month','NLS_DATE_LANGUAGE = American'), --九个字符表示的月份,右边用空格填补全部小写
8 to_char(sysdate,'Month','NLS_DATE_LANGUAGE = American'), --九个字符表示的月份,右边用空格填补首字母大些
9 to_char(sysdate,'MONTH','NLS_DATE_LANGUAGE = American') --九个字符表示的月份,右边用空格填补全部大些
10 FROM dual;
TO_CHAR(SYSDATE,'MONTH') TO_CHAR(SYSDATE,'MON') TO_CHAR(SYSDATE,'MONTH') TO_CHAR(SYSDATE,'MON','NLS_DAT TO_CHAR(SYSDATE,'MON','NLS_DAT TO_CHAR(SYSDATE,'MON','NLS_DAT TO_CHAR(SYSDATE,'MONTH','NLS_D TO_CHAR(SYSDATE,'MONTH','NLS_D TO_CHAR(SYSDATE,'MONTH','NLS_D
------------------------ ---------------------- ------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------
2月 2月 2月 feb Feb FEB february February FEBRUARY
3.4.RM 月份的罗马表示 (V在罗马数字中表示 5)
SQL> Select to_char(sysdate,'RM') from dual;
TO_CHAR(SYSDATE,'RM')
---------------------
II
4 周的运算
4.1 WW 当年第几周 (2009年2月27日为2009年的第9周)
SQL> Select to_char(sysdate,'WW') from dual;
TO_CHAR(SYSDATE,'WW')
---------------------
09
SQL>
4.2 W 本月第几周 (2009年2月27日为2月第4周)
SQL> Select to_char(sysdate,'W') from dual;
TO_CHAR(SYSDATE,'W')
--------------------
4
6. 天的运算
6.1 DDD 当年第几天 (2009年2月27日为2009年第58天)
SQL> Select to_char(sysdate,'DDD') from dual;
TO_CHAR(SYSDATE,'DDD')
----------------------
058
6.2 DD 当月第几天 (2009年2月27日为2月的第27天)
SQL> Select to_char(sysdate,'DD') from dual;
TO_CHAR(SYSDATE,'DD')
---------------------
27
6.3 D 周内第几天 (2009年2月27日为这一周的第6天,周五)
数据字显示和星期对应关系如下)
1 2 3 4 5 6 7
日 一 二 三 四 五 六