Oracle
sysdate // 返回操作系统中的当前日期和时间。
current_date // 会话的时区中的系统日期
systimestamp // 报告TIMESTAMP数据类型格式的系统日期
add_months(sysdate, 6) // 添加月份
add_months(sysdate, -6) // 减少月份
months_between(date1, date2) // 计算两个日期之间的月份之差
to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') // 日期转字符串
to_date('2019-12-27 13:24:35') // 字符串转日期
new_time(sysdate, 'this', 'other') // 将this时区的时间sysdate转换为other时区的时间
EXTRACT函数
使用EXTRACT函数来选择日期值的某一部分,比如从日期中选择月份和天)
extract ({YEAR | MONTH | DAY | HOUR | MINUTE | SECOND} from sysdate)
ROUND和TRUNC
ROUND总是将日期舍入为最接近一天的零点
select round(sysdate) from dual;
TRUNC将时间设置为当天的午夜0时
select trunc(sysdate) from dual;
GREATEST 和 LEAST
GREATEST和LEAST函数不会将日期格式的日期字符串作为日期处理。这些日期还是作为字符串处理。为使LEAST和GREASTEST正常工作,必须对日期字面值串使用TO_DATE函数;
select least(to_date('2019-12-27', 'yyyy-MM-dd'), to_date('2019-12-28', 'yyyy-MM-dd'))
from dual;
NEXT_DAY
从2019-12-27号开始下一个周一是几号
select next_day(to_date('2019-12-27', 'yyyy-MM-dd'), 'MONDAY') from dual;
LAST_DAY
计算2019年12月份的最后一天的日期
select last_day(to_date('2019-12', 'yyyy-MM')) from dual;
计算2019年的最后一天的日期
select last_day(to_date('2019', 'yyyy')) from dual;