oracle系统当前时间函数,Oracle学习笔记之日期函数

Oracle日期函数学习时,在教程有几个实例如下:

Months_between(’01-sep-95’, ’11-jan-94’)

结果是:19.6774194

Add_months 在指定的月份上面增加相应得月份

例如:

Add_months(’11-jan-94’, 6)

结果是:11-jul-94

Next_day 计算规定日期的后一个特定日期

例如:

Next_day(’01-sep-95’, ‘Friday’ )

结果是:

08-sep-95

Last_day 指这个月最后一天

例如:

Last_day(’01-feb-95’)

然而在SQL*plus输入这些函数执行时,却总得不到正确的结果,因为日期的格式无法识别。正确的用法应该如下:

select MONTHS_BETWEEN('24-2月-2010','24-2月-2010') from dual。这样写很不方便,为了避免出现这样的问题,在自己书写日期时,最好用自己喜欢的方式书写,并用to_date函数指定格式如:

select MONTHS_BETWEEN(to_date('20100224','yyyymmdd'),to_date('20100524','yyyymmdd')) from dual

这里涉及到一个to_date函数,它将输入的字符串序列,转换为指定格式的日期函数,由此可得其它更为全面的实例为(以下部分摘自http://blog.csdn.net/sxpyrgz):

1.ADD_MONTHS

增加或减去月份

SQL> select to_char(add_months(to_date('199912','yyyymm'),2),'yyyymm') from dual;

TO_CHA

------

200002

SQL> select to_char(add_months(to_date('199912','yyyymm'),-2),'yyyymm') from dual;

TO_CHA

------

199910

2.LAST_DAY

返回日期的最后一天

SQL> select to_char(sysdate,'yyyy.mm.dd'),to_char((sysdate)+1,'yyyy.mm.dd') from dual;

TO_CHAR(SY TO_CHAR((S

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

2004.05.09 2004.05.10

SQL> select last_day(sysdate) from dual;

LAST_DAY(S

----------

31-5月 -04

3.MONTHS_BETWEEN(date2,date1)

给出date2-date1的月份

SQL> select months_between('19-12月-1999','19-3月-1999') mon_between from dual;

MON_BETWEEN

-----------

9

SQL>selectmonths_between(to_date('2000.05.20','yyyy.mm.dd'),to_date('2005.05.20','yyyy.mm.dd')) mon_betw from dual;

MON_BETW

---------

-60

注:SELECT months_between(SYSDATE, sysdate) same,

months_between(SYSDATE, add_months(sysdate, -1)) big,

months_between(SYSDATE, add_months(sysdate

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值