oracle to_date、to_char、to_number之间的转换

1.TO_CHAR 是把日期或数字转换为字符串

   例子:TO_CHAR(number, '格式') --处理数字
            TO_CHAR(price,’$99,999.99’);

            TO_CHAR(date,'格式') --处理日期

            TO_CHAR(sysdate,'yyyy-mm-dd hh24:mi:ss')

       

2.TO_DATE 是把字符串转换为数据库中得日期类型转换函数

   例子:TO_DATE(date,'格式')

            TO_DATE('2011-12-22 00:00:01','yyyy-mm-dd hh24:mi:ss')

3.TO_NUMBER 将字符转化为数字

   例子:TO_NUMBER(price, '99,999,999')

            数字格式格式
            9 代表一个数字
            0 强制显示0
            $ 放置一个$符
            L 放置一个浮动本地货币符
            . 显示小数点
            , 显示千位指示符

           日期格式
            格式控制 描述
            YYYY、YYY、YY 分别代表4位、3位、2位的数字年
            YEAR 年的拼写 
            MM 数字月
            MONTH 月的全拼
            MON 月的缩写
            DD 数字日
            DAY 星期的全拼
            DY 星期的缩写
            AM 表示上午或者下午
            HH24、HH12 12小时制或24小时制
            MI 分钟
           SS 秒钟
           SP 数字的拼写
           TH 数字的序数词

    在oracle中日期格式不区分大小写,mm是月、mi是分钟。

函数使用

1.查询日期是星期几

select to_char(to_date('2011-12-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual; 

2.两个日期间的天数

select floor(sysdate - to_date('20111201','yyyymmdd')) from dual;

3.检查两个日期的条件
a_date between to_date('20111101','yyyymmdd') and to_date('20111231','yyyymmdd')

4.查找月份 

 select months_between(to_date('11-11-2011','MM-DD-YYYY'),to_date('10-11-2011','MM-DD-YYYY')) "MONTHS" FROM DUAL; 

5.获得小时

select sysdate ,to_char(sysdate,'hh24') from dual;

6.获得日期在所在月的最后一天

select to_char(add_months(last_day(sysdate) +1, -2), 'yyyymmdd'),last_day(sysdate) from dual 
7.不同时区的显示
select to_char( NEW_TIME( sysdate, 'GMT','EST'), 'dd/mm/yyyy hh:mi:ss') ,sysdate from dual;    
8.一年的第几天   

select TO_CHAR(SYSDATE,'DDD'),sysdate from dual

9.计算小时,分,秒,毫秒    

select     
     Days,     
     A,     
     TRUNC(A*24) Hours,     
     TRUNC(A*24*60 - 60*TRUNC(A*24)) Minutes,     
     TRUNC(A*24*60*60 - 60*TRUNC(A*24*60)) Seconds,     
     TRUNC(A*24*60*60*100 - 100*TRUNC(A*24*60*60)) mSeconds     
    from     
    (     
     select     
     trunc(sysdate) Days,     
     sysdate - trunc(sysdate) A     
     from dual     
   )

10.返回日期列表中最晚日期

select greatest('01年-1月-04','04年-1月-04','10年-2月-04') from dual 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值