常用的日期型函数包括:
MONTHS
BETWEEN
ADD_MONTHS
NEXT_DAY
LAST_DAY
MONTHS BETWEEN(日期1,日期2):
该函数是返回日期1和日期2之间的月数。如果日期1大于日期2,其返回的月数为正。如果日期1小于日期2,其返回的月数为负。可以通过例4-33的查询语句来验证这一单行日期型函数。
例4-33
SQL> SELECT MONTHS_BETWEEN('01-JUL-99','03-FEB-98')
2 FROM dual;
例4-33结果
MONTHS_BETWEEN('01-JUL-99','03-FEB-98')
16.9354839
例4-33显示的结果表示:1999年7月1日和1998年2月3日之间相差16.9354839个月。
ADD_MONTHS(日期,n):
该函数是把n个月加到日期上。
可以通过例4-34的查询语句验证这一单行日期型函数。
例4-34
SQL> SELECT ADD_MONTHS('15-OCT-01',8)
2 FROM dual;
例4-34结果
ADD_MONTH
15-JUN-02
例4-34显示的结果表示:2001年10月15日再过8个月为2002年6月15日。
NEXT DAY(日期,字符串):
该函数是返回下一个由字符串(星期几)指定的日期,可以通过例4-35的查询语句来验证这一单行日期型函数。
例4-35
SQL> SELECT NEXT DAY('10-MAY-02','MONDAY')
2 FROM dual;
例4-35结果NEXT_DAY(
13-MAY-02
例4-35显示的结果表示:从2002年5月10日开始的下一个星期一是2002年5月13日。
LAST DAY(日期):
■ 该函数是返回该日期所在月的最后一天。
可以通过例4-36的查询语句来验证这一单行日期型函数。
例4-36
SQL> SELECT LAST_DAY('08-FEB-02')
2 FROM dual;
例4-36结果
LAST_DAY(
28-FEB-02
例4-37我们给出一个综合的例子。例4-37
SQL> SELECT ename,hiredate,LAST_DAY(hiredate),NEXT_DAY(hiredate,'SUNDAY'),
2 MONTHS BETWEEN(SYSDATE,hiredate) "Months",
3 ADD_MONTHS(hiredate,3)"Review"
4 FROM emp;
例4-37结果
ENAME HIREDATE LAST_DAY( NEXT_DAY(Months Review
SMITH 17-DEC-80 31-DEC-80 21-DEC-80 256.656332 17-MAR-81
如果您的操作系统和数据库都是中文系统的话,应该将例4-37中第一行的末尾处的SUNDAY改为星期日,其SQL语句如例4-38。
例4-38
SQL> SELECT ename,hiredate,LAST_DAY(hiredate),NEXT_DAY(hiredate,'星期日'),
2 MONTHS BETWEEN(SYSDATE,hiredate) "Months",
3 ADD_MONTHS(hiredate,3)"Review"
4 FROM emp;