Oracle經常使用函數系列之五:日期函數

                          

本文將演示如下4個 Oracle中的經常使用日期函數。函數

函數code

功能blog

ADD_MONTHS(d,n)ip

在某一個日期d上,加上指定的月數n,返回計算後的新日期get

LAST_DAY(d)table

返回指定日期當月的最後一天im

ROUND(d[,fmt])db

返回一個以fmt爲格式的四捨五入日期值img

EXTRACT(fmt FROM d)tab

返回一個以fmt爲格式的四捨五入日期值

下面將結合實例對這些函數進行介紹。

l ADD_MONTHS(d,n),在某一個日期d上,加上指定的月數n,返回計算後的新日期。d表示日期,n表示要加的月數。

示例1:

SQL> SELECT SYSDATE,ADD_MONTHS(SYSDATE,5) FROM DUAL;

SYSDATE        ADD_MONTHS(SYS

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

06-12月-16     06-5月 -17

 

LAST_DAY(d),返回指定日期當月的最後一天。

示例2:

 

SQL> SELECT SYSDATE,LAST_DAY(SYSDATE) FROM DUAL;

 

SYSDATE        LAST_DAY(SYSDA

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

06-12月-16     31-12月-16

 

l ROUND(d[,fmt]),返回一個以fmt爲格式的四捨五入日期值,d是日期,fmt是格式模型。默認fmt爲DDD,即月中的某一天。

Ø 若是fmt爲「YEAR」則舍入到某年的1月1日,即前半年捨去,後半年做爲下一年。

Ø 若是fmt爲「MONTH」則舍入到某月的1日,即前月捨去,後半月做爲下一月。

Ø 默認爲「DDD」,即月中的某一天,最靠近的天,前半天捨去,後半天做爲次日。

Ø 若是fmt爲「DAY」則舍入到最近的周的週日,即上半周捨去,下半周做爲下一週週日。

示例3:

SQL> SELECT SYSDATE,

  2  ROUND(SYSDATE),

  3  ROUND(SYSDATE,'DAY'),

  4  ROUND(SYSDATE,'MONTH'),

  5  ROUND(SYSDATE,'YEAR')  FROM DUAL;

 

SYSDATE        ROUND(SYSDATE) ROUND(SYSDATE, ROUND(SYSDATE, ROUND(SYSDATE,

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

06-12月-16     06-12月-16     04-12月-16     01-12月-16     01-1月 -17

與ROUND對應的函數時TRUNC(d[,fmt])對日期的操做,TRUNC與ROUND很是類似,只是不對日期進行舍入,直接截取到對應格式的第一天。

 

l EXTRACT(fmt FROM d),提取日期中的特定部分。

 fmt爲:YEAR、MONTH、DAY、HOUR、MINUTE、SECOND。其中YEAR、MONTH、DAY能夠爲DATE類型匹配,也能夠與TIMESTAMP類型匹配;可是HOUR、MINUTE、SECOND必須與TIMESTAMP類型匹配。

HOUR匹配的結果中沒有加上時區,所以在中國運行的結果小8小時。

示例4:

SQL> SELECT SYSDATE "DATA",

  2   EXTRACT(YEAR FROM SYSDATE) "YEAR",

  3  EXTRACT(MONTH FROM SYSDATE) "MONTH",

  4  EXTRACT(DAY FROM SYSDATE ) "DAY",

  5  EXTRACT(HOUR FROM SYSTIMESTAMP) "HORE",

  6  EXTRACT(MINUTE FROM SYSTIMESTAMP) "MINUTE",

  7       EXTRACT(SECOND FROM SYSTIMESTAMP) "SECOND"

  8   FROM DUAL;

 

DATA                YEAR      MONTH        DAY       HORE     MINUTE     SECOND

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

06-12月-16         2016         12          6          1         38     26.481

相關文章
相關標籤/搜索