1.sysdate 返回系统当前日期
2.months_between(end_date,start_date) 返回两个日期之间的月数差,注意:是前一个日期减去后一个日期
3.add_months(date,num) 返回日期加上月数之后的日期,num可为正也可为负
4.next_day(date,'星期几') 返回距离日期最近的星期几的日期,返回日期大于等于date
另外next_day(date,1-7的数值) 返回距离日期最近的一周第几天的日期,一般以周日作为第一天
5.last_day(date) 返回当前日期所在月份的最后一天
6.round(date,'格式')
(1)round(date,'yyyy'/'yyy'/'yy'/'y'/'year') 返回距离日期最近的年份的一月一号,一般一遍的前6月返回当年的一月一号,7月到12月返回下一年的一月一号
(2)round(date,'q') 返回最近季度的第一天,如果当个季度没有过半返回当个季度第一个月的第一天,反之则是下个季度的第一天
(3)round(date,'mon'/'month'/'mm'/'rm') 返回月份的第一天,如果当月没有过半,返回当月的第一天,如果当月过半,返回下个月的第一天
(4)round(date,‘day'/'dy'/'d') 返回最近的星期天,一般以星期天作为一周的第一天,如果是周一到周三则返回上周日,如果是周四到周六返回本周日
(5)round(date,'dd'/'j'/或者取消第二个参数不写) 返回当天或第二天日期,如果当天没有过12点则返回当天日期,如果当天过了12点,则返回下一天的日期
(6)round(date,‘cc’/'scc') 返回最近的世纪初的第一天
7.trunc(date,‘格式’) 返回规定日期形式的第一天,格式同round
8.extract(格式 from date '2020-02-02')或者 extract(格式 from timestamp '2020-02-02 12:13:25')
格式有year/month/day/hour/minute/second
9.current_date 返回当前会话时区的当前日期
10.current_timestamp
例如:select current_timestamp from dual;
返回:21-8月 -22 05.10.41.903000 下午 +08:00
11.interval 变动日期时间数值
select
trunc(sysdate)+(interval '1' second), --加1秒(1/24/60/60)
trunc(sysdate)+(interval '1' minute), --加1分钟(1/24/60)
trunc(sysdate)+(interval '1' hour), --加1小时(1/24)
trunc(sysdate)+(INTERVAL '1' DAY), --加1天(1)
trunc(sysdate)+(INTERVAL '1' MONTH), --加1月
trunc(sysdate)+(INTERVAL '1' YEAR), --加1年
trunc(sysdate)+(interval '01:02:03' hour to second), --加指定小时到秒
trunc(sysdate)+(interval '01:02' minute to second), --加指定分钟到秒
trunc(sysdate)+(interval '01:02' hour to minute), --加指定小时到分钟
trunc(sysdate)+(interval '2 01:02' day to minute) --加指定天数到分钟
from dual;