<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Dict.CN 在線詞典, 英語學習, 在線翻譯

    都市淘沙者

    荔枝FM Everyone can be host

    統計

    留言簿(23)

    積分與排名

    優秀學習網站

    友情連接

    閱讀排行榜

    評論排行榜

    Oracle常見日期處理

     

    TO_DATE格式 
    Day
    dd 
    number 12 
    dy abbreviated fri 
    day spelled out friday 
    ddspth spelled out, ordinal twelfth 
    Month
    mm 
    number 03 
    mon abbreviated mar 
    month spelled out march 
    Year
    yy two digits 
    98 
    yyyy four digits 
    1998 

    24小時格式下時間范圍為: 
    0:00:00 - 23:59:59
    12小時格式下時間范圍為: 
    1:00:00 - 12:59:59 


    1
    日期和字符轉換函數用法(to_date,to_char) 

    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(nullfrom 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-7for 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
    獲得小時數 

    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, 
    abs
    trunc( 
    newer_date
    - 
    add_months( older_date,years
    *12+months ) 

    ) days 
    from ( select 
    trunc(months_between( newer_date, older_date )
    /12) YEARS, 
    mod(trunc(months_between( newer_date, older_date )), 
    12 ) MONTHS, 
    newer_date, 
    older_date 
    from ( select hiredate older_date, 
    add_months(hiredate,rownum)
    +rownum newer_date 
    from emp ) 


    14
    處理月份天數不定的辦法 
    select to_char(add_months(last_day(sysdate) +1-2), 'yyyymmdd'),last_day(sysdate) from dual 

    16
    找出今年的天數 
    select add_months(trunc(sysdate,'year'), 12- trunc(sysdate,'year'from dual 

    閏年的處理方法 
    to_char( last_day( to_date(
    '02' || :year,'mmyyyy') ), 'dd' ) 
    如果是28就不是閏年 

    17
    yyyy與rrrr的區別 
    'YYYY99 TO_C 
    ------- ---- 
    yyyy 99 0099 
    rrrr 99 1999 
    yyyy 01 0001 
    rrrr 01 2001 

    18.不同時區的處理 
    select to_char( NEW_TIME( sysdate, 
    'GMT','EST'), 'dd/mm/yyyy hh:mi:ss') ,sysdate 
    from dual; 

    19. 
    5秒鐘一個間隔 
    Select TO_DATE(FLOOR(TO_CHAR(sysdate,
    'SSSSS')/300) * 300,'SSSSS') ,TO_CHAR(sysdate,'SSSSS'
    from dual 

    2002-11-1 9:55:00 35786 
    SSSSS表示5位秒數 

    20. 
    一年的第幾天 
    select TO_CHAR(SYSDATE,
    'DDD'),sysdate from dual 
    310 2002-11-6 10:03:51 

    21.計算小時,分,秒,毫秒 
    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 




    select * from tabname 
    order by decode(mode,
    'FIFO',1,-1)*to_char(rq,'yyyymmddhh24miss'); 

    // 
    floor((date2-date1) /365) 作為年 
    floor((date2-date1, 365) /30) 作為月 
    mod(mod(date2-date1, 365), 30)作為日. 
    23.next_day函數 
    next_day(sysdate,6)是從當前開始下一個星期五。后面的數字是從星期日開始算起。

    posted on 2008-01-09 13:34 都市淘沙者 閱讀(259) 評論(0)  編輯  收藏 所屬分類: Oracle/Mysql/Postgres/

    主站蜘蛛池模板: 在线91精品亚洲网站精品成人| 91成人免费福利网站在线| 青青草无码免费一二三区| 国产免费69成人精品视频| 亚洲综合视频在线观看| 四虎成人精品国产永久免费无码| 免费在线观看h片| 国产成人综合亚洲AV第一页| 亚洲欧美日韩综合久久久久| 91精品手机国产免费| 亚洲欧洲日产国码av系列天堂| 亚洲AV无码XXX麻豆艾秋| 91成年人免费视频| 久久久久无码精品亚洲日韩| 一区二区视频免费观看| 女人18毛片a级毛片免费视频| 亚洲综合久久1区2区3区| 男人天堂免费视频| 亚洲成av人片在线观看天堂无码| 亚洲国产乱码最新视频| 久久成人国产精品免费软件| 亚洲国产另类久久久精品| 一级毛片试看60分钟免费播放| 日本黄页网站免费| xxx毛茸茸的亚洲| 亚洲视频免费一区| 久久久久亚洲av无码专区蜜芽 | 亚洲国产aⅴ成人精品无吗| 日本免费xxxx| 亚洲精品美女在线观看| 亚洲a一级免费视频| 亚洲av无码片在线播放| 99re6在线精品免费观看| 久久精品国产精品亚洲| 曰批全过程免费视频观看免费软件| 一区二区无码免费视频网站| 亚洲卡一卡2卡三卡4麻豆| 亚洲视频在线观看免费视频| 久久久久亚洲精品日久生情| 久久永久免费人妻精品下载| 久久久久亚洲av无码专区蜜芽|