oracle中单行函数日期时间函数总结

表中存在伪列:sysdate,systimestamp 伪列存在但是不显示

select sysdate from dual;

select systimestamp from dual;

日期计算公式:

日期+天数=日期

日期-天数=日期

日期-日期=天数 

函数编号 函数描述 函数使用实例
1

返回 日期  add_months(列|日期,月数)

返回增加月数后的当前日期

select add_months(sysdate,3) 今天日期是2019.05.27,返回的日期是2019.08.27
2 返回 月数 months_between(列|日期,列|日期) select months_between(sysdate,hiredate) from emp 返回两个日期之间的月数
3 返回 日期 last_day(列|日期)  返回日期所在月的最后一天 例:select last_day(sysdate) from dual;  当前日期为2019.05.27 返回2019.05.31的日期数据
4 返回 日期 next_day(列|日期,星期几|数字)返回下一个星期几的日期(星期为英文),如果为数字的时候,是下个星期的第几天,周日是第一天

例:select next_day(sysdate,1) from dual;

例:select next_day(sysdate,'Tues') from dual

 

综合练习题:

2010年4月2日,距离现在多少年,多少月多少日

第一步计算距离现在多少个整月:

select trunc(months_between(sysdate,to_date('2010-04-02','yyyy-mm-dd'))) from dual;

第二步计算距离现在多少年

select trunc(months_between(sysdate,to_date('2010-04-02','yyyy-mm-dd'))/12) from dual;

第二步距离现在除了年以外的整数月

select  mod(trunc(months_between(sysdate,to_date('2010-04-02','yyyy-mm-dd'))),12) dual;

第三步求出距离现在时间小于三十天的日期,两个日期相隔时间为整数月的日期

select trunc(sysdate-add_months(to_date('2010-04-02','yyyy-mm-dd'),trunc(months_between(sysdate,to_date('2010-04-02','yyyy-mm-dd'))))) 天数 from dual;

posted @ 2017-01-19 13:54  自动化前行者  阅读(213)  评论(0编辑  收藏  举报