TO_CHAR(date[,fmt,[,nls_param]])、TO_DATE(char[,fmt[,nls_param]])函数2010.01.27_2

TO_CHAR、TO_DATE函数的详细用法

(一)FMT格式: 


1、SQL> SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss') FROM DUAL;
 
     TO_CHAR(SYSDATE,'YYYY-MM-DDHH2
     ------------------------------
     2010-01-27 22:02:00

 

2、d:一周的第几天

     SQL> SELECT TO_CHAR(SYSDATE,'d') FROM dual;
 
     TO_CHAR(SYSDATE,'D')
     --------------------
     4  

 

3、day:一周的星期几(英文全写)

     SQL> SELECT TO_CHAR(SYSDATE,'Day') FROM dual;
 
     TO_CHAR(SYSDATE,'DAY')
     ----------------------
     星期三

     若是英文,则显示wednesday

 

    dy:一周的星期几(英文简写)

 

    SQL> SELECT TO_CHAR(SYSDATE,'DY') FROM DUAL;
 

    TO_CHAR(SYSDATE,'DY')
    ---------------------
    星期三

    若是英文,则显示wed

 

4、dd:一月的第几天

     SQL> SELECT TO_CHAR(SYSDATE,'Dd') FROM dual;
 
     TO_CHAR(SYSDATE,'DD')
     ---------------------
     27

 

5、ddd:一年的第几天

     SQL> SELECT TO_CHAR(SYSDATE,'DDD') FROM DUAL;
 
     TO_CHAR(SYSDATE,'DDD')
     ----------------------
     027

 

6、YYYY 四位年份 、YYY三位年份,YY二位年份,Y 一位年份

 

7、  HH /HH12,按12小时计 1:00:00~12:59:59。

       HH24 ,按24小时计        0:00:00~23:59:59 。

       MI:分 0~59。SS:秒 0~59。

 

8、MM:两位月  显示月:01    MON(英文简写):字符集表示   显示月:1月,若是英文版,显示jan 

    MONTH(英文全写)  字符集表示  显示月:1月,若是英文版,显示january   

 

   SQL> SELECT TO_CHAR(SYSDATE,'mm') FROM DUAL;
 

   TO_CHAR(SYSDATE,'MM')
   ---------------------
   01

 

   SQL> SELECT TO_CHAR(SYSDATE,'mon') FROM DUAL;
 
   TO_CHAR(SYSDATE,'MON')
   ----------------------
   1月

 

  SQL> SELECT TO_CHAR(SYSDATE,'month') FROM DUAL;
 
  TO_CHAR(SYSDATE,'MONTH')
  ------------------------
  1月

9 、Q:季度 表示值:1、2、3、4

 

      SQL> SELECT TO_CHAR(sysdate,'Q') FROM DUAL;
 
      TO_CHAR(SYSDATE,'Q')
      --------------------
      1

 

10、W:一月的第几周

       SQL> SELECT TO_CHAR(SYSDATE,'W') FROM DUAL;
 
       TO_CHAR(SYSDATE,'W')
       --------------------
       4

11、WW:一年的第几周

       SQL> SELECT TO_CHAR(SYSDATE,'WW') FROM DUAL;
 
       TO_CHAR(SYSDATE,'WW')
       ---------------------
       04

 12、分隔符:-、/、,、:、;、.。共6个,可互相套用。

 

exp1 : SQL> SELECT TO_CHAR(SYSDATE,'yyyy/mm/dd hh/mi/ss') FROM DUAL;
 
           TO_CHAR(SYSDATE,'YYYY/MM/DDHH/
           ------------------------------
           2010/01/30 02/46/16
 
 exp2: SQL> SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd hh/mi/ss') FROM DUAL;
 
           TO_CHAR(SYSDATE,'YYYY-MM-DDHH/
           ------------------------------
           2010-01-30 02/47/38
 
exp3:  SQL> SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd hh-mi-ss') FROM DUAL;
 
           TO_CHAR(SYSDATE,'YYYY-MM-DDHH-
           ------------------------------
           2010-01-30 02-47-52
 exp4: SQL> SELECT TO_CHAR(SYSDATE,'yyyy,mm,dd hh,mi,ss') FROM DUAL;
 
           TO_CHAR(SYSDATE,'YYYY,MM,DDHH,
           ------------------------------
           2010,01,30 02,51,15

 

 exp5: SQL> SELECT TO_CHAR(SYSDATE,'YYYY:MM:DD:HH:MI:SS') FROM DUAL;
 
           TO_CHAR(SYSDATE,'YYYY:MM:DD:HH
           ------------------------------
           2010:01:30:02:52:46

 exp6: SQL> SELECT TO_CHAR(SYSDATE,'YYYY;MM;DD;HH;MI;SS') FROM DUAL;
 
           TO_CHAR(SYSDATE,'YYYY;MM;DD;HH
           ------------------------------
           2010;01;30;02;53;53

 exp7:SQL> SELECT TO_CHAR(SYSDATE,'YYYY.MM.DD:HH:MI:SS') FROM DUAL;
 
          TO_CHAR(SYSDATE,'YYYY.MM.DD:HH
          ------------------------------
          2010.01.30:02:54:45

 (二)TO_CHAR(date[,fmt,[,nls_param]])

      fmt,nls_param为可选项,fmt指定了要转化的格式,nls_param指定了返回日期所使用的语言,

格式为:'nls_date_language=language'

如:'nls_date_language=simplified chinese'、'nls_date_language=japanese'、'nls_date_language=english'

注:如果没有指定fmt和nls_param,则按oracle的默认模式处理。

例1、

SQL> SELECT TO_CHAR(SYSDATE) FROM DUAL;
 
TO_CHAR(SYSDATE)
----------------
30-1月 -10

例2、

SQL> SELECT TO_CHAR(SYSDATE,'YYYY-MON-DD HH24:MI:SS DAY') FROM DUAL;
 
TO_CHAR(SYSDATE,'YYYY-MON-DDHH
-----------------------------------
2010-1月 -30 03:16:21 星期六

例3、

SQL> SELECT TO_CHAR(SYSDATE,'YYYY-MON-DD HH24:MI:SS DAY','nls_date_language=ENGLISH') FROM DUAL;
 
TO_CHAR(SYSDATE,'YYYY-MON-DDHH
-------------------------------------
2010-JAN-30 03:17:11 SATURDAY
 

 (三)TO_DATE(char[,fmt[,nls_param]])

 其中fmt、nls_param参照TO_CHAR(date[,fmt[,nls_param]])函数

 例1:

SQL> SELECT TO_DATE('2010-1月-30 3:43:50','YYYY-MONTH-DD HH:MI:SS') FROM DUAL;
 
TO_DATE('2010-1月-303:43:50','
------------------------------
2010-1-30 3:43:50

例2、

SQL> SELECT TO_DATE('2010-01-30','YYYY-MM-DD') FROM DUAL;
 
TO_DATE('2010-01-30','YYYY-MM-
------------------------------
2010-1-30

例3、

SQL> SELECT TO_DATE('2010-01-30','YYYY-MON-DD') FROM DUAL;
 
SELECT TO_DATE('2010-01-30','YYYY-MON-DD') FROM DUAL
 
ORA-01843: 无效的月份

例4、

SQL> SELECT TO_DATE('2010-1月-30','YYYY-MON-DD') FROM DUAL;
 
TO_DATE('2010-1月-30','YYYY-MO
------------------------------
2010-1-30

例5、

SQL> SELECT TO_DATE('2010-1月-30','YYYY') FROM DUAL;
 
SELECT TO_DATE('2010-1月-30','YYYY') FROM DUAL
 
ORA-01830: 日期格式图片在转换整个输入字符串之前结束

例6、

SQL> SELECT TO_DATE('2010-january-30 3:43:50','YYYY-MONTH-DD HH:MI:SS') FROM DUAL;
 
SELECT TO_DATE('2010-january-30 3:43:50','YYYY-MONTH-DD HH:MI:SS') FROM DUAL
 
ORA-01843: 无效的月份

例7、

SQL> SELECT TO_DATE('2010-january-30 3:43:50','YYYY-MONTH-DD HH:MI:SS','nls_date_language=English') FROM DUAL;
 
TO_DATE('2010-JANUARY-303:43:5
------------------------------
2010-1-30 3:43:50

 

注:在使用TO_DATE(char[,fmt[,nls_param]])函数时应注意char、fmt、nls_param之间的对应关系。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值