Oracle常用函数系列之五:日期函数

                          006zipb5zy770pEpAE35b&690

本文将演示以下4个 Oracle中的常用日期函数。

函数

功能

ADD_MONTHS(d,n)

在某一个日期d上,加上指定的月数n,返回计算后的新日期

LAST_DAY(d)

返回指定日期当月的最后一天

ROUND(d[,fmt])

返回一个以fmt为格式的四舍五入日期值

EXTRACT(fmt FROM d)

返回一个以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

 

转载于:https://my.oschina.net/u/2971691/blog/801676

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值