在Oracle 11g中,系统提供了许多用于处理日期和时间的函数,经过这些函数能够实现计算须要的特定日期和时间,经常使用的日期和时间函数如表7.3所示。
表7.3经常使用日期时间类函数
日期类型的默认格式是“日-月-年”即“DD-MON-YY”,其中“DD”表示两位数字的“日”,MON表示3位数字的“月份”。YY表示两位数字的“年份”,例如,“01-10月-11”表示2011年10月1日。下面看几个经常使用函数的具体应用。markdown
1.SYSDATE()函数
若是想要系统当前的日期,能够使用SYSDATE()函数,代码以下。ide
selectsysdateas系统日期from dual;
经过SQL Developer输入,查询结果如图7.14所示。
图7.14 得到系统当前的日期函数
2.ADD_MONTHS(d,i)函数
该函数返回日期d加上i个月以后的结果。其中,i为任意整数。3d
实例10 使用ADD_MONTHS()函数计算日期值 code
使用ADD_MONTHS()函数计算三个月以后的日期和三个月以前的日期,代码以下:blog
01 selectsysdate当前日期, 02 ADD_MONTHS(sysdate,3) 三个月以后的日期, 03 ADD_MONTHS(sysdate,-3) 三个月以后的日期 04 from dual;
经过SQL Developer输入,查询结果如图7.15所示。
图7.15 使用ADD_MONTHS()函数计算日期值it
经过图7.15可知,当前日期为“2017年5月13日”,那么三个月以前的日期就是“2017年8月13日”。若是ADD_MONTHS()函数的第二个参数为负数,则代表计算的是当前日期以前的日期值。
常见错误:使用“日期 + 数字”的形式来计算以前或以后的日期。
若是要计算三个月以后的日期,使用“sysdate + 90”也是表示三个月以后的日期,为何要使用ADD_MONTHS()函数来计算日期值呢?
这是由于在日期中存在闰年的状况,若是使用日期加减数字的方式则没法进行准确的日期操做。class