zoukankan      html  css  js  c++  java
  • Oracle TO_DATE 日期格式大全

    Oracle TO_DATE 日期格式大全

    Oracle中TO_DATE格式2009-04-14 10:53TO_DATE格式(以时间:2007-11-02   13:45:25为例)

            Year:     

            yy two digits 两位年                显示值:07

            yyy three digits 三位年                显示值:007

            yyyy four digits 四位年                显示值:2007

            Month:     

            mm    number     两位月              显示值:11

            mon    abbreviated 字符集表示          显示值:11月,若是英文版,显示nov    

            month spelled out 字符集表示          显示值:11月,若是英文版,显示november

             

            Day:     

            dd    number         当月第几天        显示值:02

            ddd    number         当年第几天        显示值:02

            dy    abbreviated 当周第几天简写    显示值:星期五,若是英文版,显示fri

            day    spelled out   当周第几天全写    显示值:星期五,若是英文版,显示friday       

            ddspth spelled out, ordinal twelfth

                

                  Hour:

                  hh    two digits 12小时进制            显示值:01

                  hh24 two digits 24小时进制            显示值:13

                 

                  Minute:

                  mi    two digits 60进制                显示值:45

                 

                  Second:

                  ss    two digits 60进制                显示值:25

                 

                  其它

                  Q     digit         季度                  显示值:4

                  WW    digit         当年第几周            显示值:44

                  W    digit          当月第几周            显示值:1

                 

            24小时格式下时间范围为: 0:00:00 - 23:59:59....     

            12小时格式下时间范围为: 1:00:00 - 12:59:59 ....

               

    1. 日期和字符转换函数用法(to_date,to_char)

            

    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual;   //日期转化为字符串  

    select to_char(sysdate,'yyyy') as nowYear   from dual;   //获取时间的年  

    select to_char(sysdate,'mm')    as nowMonth from dual;   //获取时间的月  

    select to_char(sysdate,'dd')    as nowDay    from dual;   //获取时间的日  

    select to_char(sysdate,'hh24') as nowHour   from dual;   //获取时间的时  

    select to_char(sysdate,'mi')    as nowMinute from dual;   //获取时间的分  

    select to_char(sysdate,'ss')    as nowSecond from dual;   //获取时间的秒

       

    select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss')    from dual//

    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;    

    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> select sysdate ,to_char(sysdate,'hh24') from dual;     

       

        SYSDATE TO_CHAR(SYSDATE,'HH24')     

        -------------------- -----------------------     

        2003-10-13 19:35:21 19    

          

    13.年月日的处理     

       select older_date,     

           newer_date,     

           years,     

           months,     

    好的代码像粥一样,都是用时间熬出来的
  • 相关阅读:
    17.1.2.1 Advantages and Disadvantages of Statement-Based and Row-Based Replication
    17.1.2 Replication Formats
    Setting the Master Configuration on the Slave
    17.1.1.9 Introducing Additional Slaves to an Existing Replication Environment
    17.1.1.8 Setting Up Replication with Existing Data
    17.1.1.7 Setting Up Replication with New Master and Slaves
    17.1.1.6 Creating a Data Snapshot Using Raw Data Files
    列出display的值,并说明它们的作用
    CSS设置DIV居中
    CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?
  • 原文地址:https://www.cnblogs.com/jijm123/p/13880624.html
Copyright © 2011-2022 走看看