oracle中时间处理
一、简介
这里介绍oracle中时间的处理,包含常用时间函数、时间加减、时间抽取、时间与字符串互转。
二、时间函数
2.1 sysdate
sysdate表示当前时间,精确到秒。如:
-- sysdate:表示当前系统时间,精确到秒,如:2021-04-05 12:36:18
select sysdate from dual;
2.2 systimestamp
systimestamp表示当前系统时间,精确到微秒,包含时区信息。如:
-- systimestamp:表示当前系统时间,精确到微秒,包含时区信息,如:2021-04-05 12:37:37.485164 +08:00
select systimestamp from dual;
2.3 dbtimezone
dbtimezone返回数据库时区,如:
-- dbtimezone 返回数据库时区, 如:+00:00
select dbtimezone from dual;
2.4 sessiontimezone
sessiontimezone返回当前会话时区,如:
-- 返回当前会话时区,如:UTC
select sessiontimezone from dual;
2.5 current_date
current_date返回当前会话时区的当前日期,如:
-- 返回当前会话时区的当前日期,如:2021-04-05 04:45:47
select current_date from dual;
三、时间加减
3.1 numtodsinterval
numtodsinterval用于时间(天、时、分、秒)加减。
-- numtodsinterval用于时间(天、时、分、秒)加减,
-- 增加1天
select sysdate, sysdate+numtodsinterval(1, 'day') from dual;
-- 减少一天
select sysdate, sysdate+numtodsinterval(-1, 'day') from dual;
-- 增加1小时
select sysdate, sysdate+numtodsinterval(1, 'hour') from dual;
-- 增加1分钟
select sysdate, sysdate+numtodsinterval(1, 'minute') from dual;
-- 增加20秒
select sysdate, sysdate+numtodsinterval(20, 'second') from dual;
3.2 天数加减
直接通过加减可以对天数加减
-- 通过简单加减天
-- 增加1天
select sysdate, sysdate+1 from dual;
-- 减少10天
select sysdate, sysdate-10 from dual;
3.3 月数加减
add_months用于月份加减,如:
-- 增加1月