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

相关文章
相关标签/搜索