• oracle日期时间函数大全


    1.

    TO_DATE格式(以时间:2007-11-02   13:45:25为例)
            Year:      
            yy two digits 两位年                显示值:07
            yyy three digits 三位年                显示值:007
            yyyy four digit

    2.     
        select to_char( to_date(222,'J'),'Jsp') from dual     
        显示Two Hundred Twenty-Two  

    3.求某天是星期几     
       select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from dual;     
       星期一     
       select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;     
       monday     
       设置日期语言     
       ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';     
       也可以这样     
       TO_DATE ('2002-08-26', 'YYYY-mm-dd', 'NLS_DATE_LANGUAGE = American')  

    4. 两个日期间的天数     
        select floor(sysdate - to_date('20020405','yyyymmdd')) from dual;  

       select floor(to_date('2009-9-10','yyyy-mm-dd')-to_date('2009-9-1','yyyy-mm-dd')) from dual

    5. 时间为null的用法     
       select id, active_date from table1     
       UNION     
       select 1, TO_DATE(null) from dual;     
       注意要用TO_DATE(null)  

    6.月份差  
       a_date between to_date('20011201','yyyymmdd') and to_date('20011231','yyyymmdd')     
       那么12月31号中午12点之后和12月1号的12点之前是不包含在这个范围之内的。     
       所以,当时间需要精确的时候,觉得to_char还是必要的
    7. 日期格式冲突问题     
        输入的格式要看你安装的ORACLE字符集的类型, 比如: US7ASCII, date格式的类型就是: '01-Jan-01'     
        alter system set NLS_DATE_LANGUAGE = American     
        alter session set NLS_DATE_LANGUAGE = American     
        或者在to_date中写     
        select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;     
        注意我这只是举了NLS_DATE_LANGUAGE,当然还有很多,     
        可查看     
        select * from nls_session_parameters     
        select * from V$NLS_PARAMETERS  

    8.     
       select count(*)     
       from ( select rownum-1 rnum     
           from all_objects     
           where rownum <= to_date('2002-02-28','yyyy-mm-dd') - to_date('2002-     
           02-01','yyyy-mm-dd')+1     
          )     
       where to_char( to_date('2002-02-01','yyyy-mm-dd')+rnum-1, 'D' )     
            not in ( '1', '7' )     
       查找2002-02-28至2002-02-01间除星期一和七的天数     
       在前后分别调用DBMS_UTILITY.GET_TIME, 让后将结果相减(得到的是1/100秒, 而不是毫秒).  

    9. 查找月份    
        select months_between(to_date('01-31-1999','MM-DD-YYYY'),to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;     
        1     
       select months_between(to_date('02-01-1999','MM-DD-YYYY'),to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;     
        1.03225806451613
    10. Next_day的用法     
        Next_day(date, day)     
        Monday-Sunday, for format code DAY     
        Mon-Sun, for format code DY     
        1-7, for format code D  

    11     
       select to_char(sysdate,'hh:mi:ss') TIME from all_objects     
       注意:第一条记录的TIME 与最后一行是一样的     
       可以建立一个函数来处理这个问题     
       create or replace function sys_date return date is     
       begin     
       return sysdate;     
       end;     
       select to_char(sys_date,'hh:mi:ss') from all_objects;  
    12.获得小时数     
         extract()找出日期或间隔值的字段值
        SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 2:38:40') from offer     
        SQL> select sysdate ,to_char(sysdate,'hh') from dual;     
        SYSDATE TO_CHAR(SYSDATE,'HH')     
        -------------------- ---------------------     
        2003-10-13 19:35:21 07     
        SQL&gt; select sysdate ,to_char(sysdate,'hh24') from dual;     
        SYSDATE TO_CHAR(SYSDATE,'HH24')     
        -------------------- -----------------------     
        2003-10-13 19:35:21 19  

  • 相关阅读:
    深入理解Elasticsearch写入过程 使用routing会导致docid不再全局唯一 Allocate策略 + routing参数
    force merge原理 + ES写入数据的过程
    Linux内核参数--time-wait回收--不建议设置
    elasticsearch迁移--利用腾讯云cos和nfs
    蓝鲸安装失败
    Apache Tomcat/8.5.51 secretRequired="true"
    自定义Nginx返回页面
    本地yum 源 iso文件 安装ansible
    elasticsearch字段属性值截断为32位
    rabbitmq-consul-apollo部署文档
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/1776967.html
Copyright © 2020-2023  润新知