
5.4 日期和时间函数
日期和时间函数主要用来处理日期和时间值,一般的日期函数除了使用DATE类型的参数外,也可以使用TIMESTAMP类型的参数,但会忽略这些值的时间部分。本节将介绍各种日期和时间函数的功能和用法。
5.4.1 获取当前日期和时间的函数
SYSDATE()函数获取当前系统日期。
【例5.35】使用日期函数获取系统当前日期,输入语句如下:

【例5.36】使用日期函数获取指定格式的系统当前日期,输入语句如下:

SYSTIMESTAMP()函数获取当前系统时间,该时间包含时区信息,精确到微秒。返回类型为带时区信息的TIMESTAMP类型。
【例5.37】使用日期函数获取系统当前时间,输入语句如下:

5.4.2 获取时区的函数
DBTIMEZONE函数返回数据库所在的时区。
【例5.38】使用DBTIMEZONE函数获取数据库所在的时区,输入语句如下:

SESSIONTIMEZONE函数返回当前会话所在的时区。
【例5.39】使用SESSIONTIMEZONE函数获取当前会话所在的时区,输入语句如下:

5.4.3 获取指定月份最后一天函数
LAST_DAY(date)函数返回参数指定日期对应月份的最后一天。
【例5.40】使用LAST_DAY函数返回指定月份最后一天,输入语句如下:

返回2月份的最后一天是28日。
5.4.4 获取指定日期后一周的日期函数
NEXT_DAY(date,char)函数获取当前日期向后的一周对应日期,char表示是星期几,全称和缩写都允许,但必须是有效值。
【例5.41】使用NEXT_DAY函数返回指定日期后一周的日期函数。输入语句如下:

NEXT_DAY(SYSDATE, '星期日')返回当前日期后第一个周日的日期。
5.4.5 获取指定日期特定部分的函数
EXTRACT(datetime)函数可以从指定的时间中提取特定部分,例如提取年份、月份或者时等。
【例5.42】使用EXTRACT函数获取年份等特定部分。输入语句如下:

从结果可以看出,分别返回了年份和分钟。
5.4.6 获取两个日期之间的月份数
MONTHS_BETWEEN(date1,date2)函数返回date1和date2之间的月份数。
【例5.43】使用MONTHS_BETWEEN函数获取两个日期之间的月份数。输入语句如下:

从结果可以看出,当date1>date2时,返回数值为一个正数,当date1<date2时,返回数值为一个负数。