表中存在伪列:sysdate,systimestamp 伪列存在但是不显示
select sysdate from dual;
select systimestamp from dual;
日期计算公式:
日期+天数=日期
日期-天数=日期
日期-日期=天数
这种计算不是特别准确
月函数:add_months(列|日期,月数),距离列|日期,几个月后的日期
months_between(列|日期,列|日期)返回两个日期之间的月数
last_day(列|日期)某个日期所在月的最后一天
next_day(列|日期,星期几)返回下一个星期几的日期
综合练习题:
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;