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

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

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

    posts - 82, comments - 269, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    oracle日期函數集錦

    Posted on 2008-07-10 13:42 itspy 閱讀(2733) 評論(2)  編輯  收藏 所屬分類: 其它技術

    來源:
    http://www.javaeye.com/topic/190221
    http://oracle.javaeye.com/

    一、 常用日期數據格式


    1.Y或YY或YYY 年的最后一位,兩位或三位

    SQL> Select to_char(sysdate,'Y') from dual;

    TO_CHAR(SYSDATE,'Y')
    --------------------
    7

    SQL> Select to_char(sysdate,'YY') from dual;

    TO_CHAR(SYSDATE,'YY')
    ---------------------
    07

    SQL> Select to_char(sysdate,'YYY') from dual;

    TO_CHAR(SYSDATE,'YYY')
    ----------------------
    007

    2.Q 季度 1~3月為第一季度,2表示第二季度。

    SQL> Select to_char(sysdate,'Q') from dual;

    TO_CHAR(SYSDATE,'Q')
    --------------------
    2

    3.MM 月份數

    SQL> Select to_char(sysdate,'MM') from dual;

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

    4.RM 月份的羅馬表示 (V在羅馬數字中表示 5)

    SQL> Select to_char(sysdate,'RM') from dual;

    TO_CHAR(SYSDATE,'RM')
    ---------------------
    V

    5.Month 用9個字符長度表示的月份名

    SQL> Select to_char(sysdate,'Month') from dual;

    TO_CHAR(SYSDATE,'MONTH')
    ------------------------
    5月

    6.WW 當年第幾周 (2007年5月29日為2007年第22周)

    SQL> Select to_char(sysdate,'WW') from dual;

    TO_CHAR(SYSDATE,'WW')
    ---------------------
    22

    7.W 本月第幾周 (2007年5月29日為5月第5周)

    SQL> Select to_char(sysdate,'W') from dual;

    TO_CHAR(SYSDATE,'W')
    --------------------
    5

    8.DDD 當年第幾天 (2007年5月29日為2007年第149天)

    SQL> Select to_char(sysdate,'DDD') from dual;

    TO_CHAR(SYSDATE,'DDD')
    ----------------------
    149

    9. DD 當月第幾天

    SQL> Select to_char(sysdate,'DD') from dual;

    TO_CHAR(SYSDATE,'DD')
    ---------------------
    29

    10.D 周內第幾天

    SQL> Select to_char(sysdate,'D') from dual;

    TO_CHAR(SYSDATE,'D')
    --------------------
    3

    11.DY 中文的星期幾 ( (2007年5月29日為星期二))

    SQL> Select to_char(sysdate,'DY') from dual;

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

    12.HH或HH12 12進制小時數 (16:09分為用12小時制計時為4點)

    SQL> Select to_char(sysdate,'HH') from dual;

    TO_CHAR(SYSDATE,'HH')
    ---------------------
    04

    13.HH24 24小時制

    SQL> Select to_char(sysdate,'HH24') from dual;

    TO_CHAR(SYSDATE,'HH24')
    -----------------------
    16

    二、常用時間函數

    1.trunc(sysdate,'Q') 本季度第一天

    SQL> select trunc(sysdate,'Q') from dual;

    TRUNC(SYSDATE,'Q')
    ------------------
    2007-4-1

    2.trunc(sysdate,'D') 本周的第一天(周日)

    SQL> select trunc(sysdate,'D')from dual;

    TRUNC(SYSDATE,'D')
    ------------------
    2007-5-27

    3.last_day(sysdate) 本月最后一天

    SQL> select last_day(sysdate) from dual;

    LAST_DAY(SYSDATE)
    -----------------
    2007-5-31 15:20:3

    4.add_months(sysdate,2) 日期sysdate后推2個月


    SQL> select add_months(sysdate,2) from dual;

    ADD_MONTHS(SYSDATE,2)
    ---------------------
    2007-7-29 15:21:14

    5.next_day(sysdate,2) 日期sysdate之后的第一周中,第2(指定星期的第幾天)是什么日期

    SQL> select next_day(sysdate,2) from dual;

    NEXT_DAY(SYSDATE,2)
    -------------------
    2007-6-4 15:22:10

    6.Months_between(f,s) 日期f和s間相差月數

    SQL> select months_between(sysdate,to_date('2007-04-12','yyyy-mm-dd'))from dual;

    MONTHS_BETWEEN(SYSDATE,TO_DATE
    ------------------------------
    1.56909908900836


    7.得到SYSDATE+5所在的月份

    SQL> SELECT to_char(SYSDATE+5,'mon','nls_date_language=american') FROM dual;

    TO_CHAR(SYSDATE+5,'MON','NLS_D
    ------------------------------
    jun

    8.current_date()返回當前會話時區中的當前日期 。

    9.select dbtimezone from dual;

    10.extract()找出日期或間隔值的字段值

    SQL> select extract(month from sysdate) "This Month" from dual;

    This Month
    ----------
    5
    SQL> select extract(year from sysdate) "This year" from dual;

    This year
    ----------
    2007
    SQL> select extract(month from add_months(sysdate,2)) " Month" from dual;

    Month
    ----------
    7


    ==================================================================

    三、一些實踐后的用法:

    1.上月末天:
    select to_char(add_months(last_day(sysdate),-1),'yyyy-MM-dd') LastDay from dual;

    2.上月今天
    SQL> select to_char(add_months(sysdate,-1),'yyyy-MM-dd') PreToday from dual;

    3.上月首天
    SQL> select to_char(add_months(last_day(sysdate)+1,-2),'yyyy-MM-dd') firstDay from dual;

    4.要找到某月中所有周五的具體日期

    SELECT to_char(b.a,'YY-MM-DD')
    FROM ( SELECT trunc(SYSDATE,'mm')+ROWNUM-1 a
    FROM dba_objects where rownum < 32 ) b
    WHERE to_char(b.a,'day')='星期五';


    如果把where to_char(t.d, 'MM') = to_char(sysdate, 'MM')改成sysdate-90,即為查找當前月份的前三個月中

    的每周五的日期。


    5.得到系統當前月及以后的日期

    select trunc(sysdate, 'MM')+ROWNUM-1 FROM dba_objects ;

     

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

    to_date 字符串類型轉為換日期類型
    字符串中的相應位置上的字符,必須符合時間范圍的限制  

    14.MI 分鐘數(0~59)
    提示注意不要將MM格式用于分鐘(分鐘應該使用MI)。MM是用于月份的格式,將它用于分鐘也能工作,但結果是錯誤的。

    15.SS 秒數(0~59)


    評論

    # re: oracle日期函數集錦  回復  更多評論   

    2008-12-02 11:19 by itspy
    select date '2008-12-02' from dual ;

    '12-Dec-2008'

    Oracle 兩種時間簡寫方式

    # re: oracle日期函數集錦  回復  更多評論   

    2009-03-11 19:30 by itspy
    sqlserver的有用的日期函數
    http://www.sqlserver.com.cn/c2l0ZS9zaG93Lmh0bWw_bXlpZD0yMDY=url.html


    1.一個月第一天的
    SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)

    2.本周的星期一
    SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)

    3.一年的第一天
    SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)

    4.季度的第一天
    SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)

    5.當天的半夜
    SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)

    6.上個月的最后一天
    SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))

    7.去年的最后一天
    SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))

    8.本月的最后一天
    SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))

    9.本年的最后一天
    SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))

    10.本月的第一個星期一
    select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0)
    主站蜘蛛池模板: 污视频网站免费观看| 亚洲天堂男人影院| 久久久久女教师免费一区| 国产国产人免费视频成69大陆 | 亚洲AV无码乱码在线观看富二代| 免费国产va在线观看| 免费无遮挡无码永久在线观看视频| 中国亚洲呦女专区| 在线免费不卡视频| 国产亚洲精品免费| 亚洲国产综合精品一区在线播放| 无码人妻一区二区三区免费视频 | 免费看的成人yellow视频| 亚洲欧美国产精品专区久久| 午夜免费福利网站| 白白色免费在线视频| 亚洲Av无码乱码在线znlu| 日韩免费在线中文字幕| 亚洲熟妇无码另类久久久| 免费观看在线禁片| 亚洲一区二区三区亚瑟| 精品国产免费观看一区| 亚美影视免费在线观看| 香蕉视频在线观看亚洲| 日本片免费观看一区二区| 亚洲sss综合天堂久久久| 国产精品成人免费综合| 两个人看的www视频免费完整版| 亚洲国产成人久久精品影视| 999久久久免费精品国产| 粉色视频成年免费人15次| 亚洲人成色777777在线观看| 91久久精品国产免费直播| 亚洲成在人线在线播放无码| 国产福利电影一区二区三区,亚洲国模精品一区 | 99在线免费视频| 亚洲午夜精品在线| 国产免费无码一区二区| 亚洲小说区图片区| 国产大片91精品免费看3| 18禁在线无遮挡免费观看网站|