记录日常问题:
1.需求时间拼接比如 时间A是2019/11/22 时间B是20:30
CONCAT(TO_CHAR(时间A, 'yyyy/mm/dd '), 时间B)
2.需求 时间相加 比如 -- 时间A格式:2019/11/7 18:25:26 ------ 时间B 格式:90(分钟) ---- 时间C格式:20:30
时间A+时间B+时间C
时间A+ NUMTODSINTERVAL(时间B, 'minute') +NUMTODSINTERVAL((TO_NUMBER(SUBSTR(时间C, 1, 2)) + TO_NUMBER(SUBSTR(时间C, 4, 5)) / 60),'hour')
numtodsinterval 函数介绍
缺点: 超过24小时以后,这个函数就不管用了
NUMTODSINTERVAL(n, 'interval_unit')
n 可以是任意数字
interval_unit 指定n表示的是天还是时或分或秒,一般为下面的值:
DAY
HOUR
MINUTE
SECOND
select numbers,
sysdate,
numtodsinterval(numbers, 'MINUTE'),
to_date(sysdate, 'yyy-mm-dd') + numtodsinterval(numbers, 'MINUTE'),
sysdate + numtodsinterval(numbers, 'MINUTE')
from A
numtoyminterval函数介绍
NUMTOYMINTERVAL(n, 'interval_unit')
n 可以是任意数据
interval_unit 指定n表示的是年还是月,需要是下面的值:
YEAR
MONTH
SELECT number 数字, NUMTOYMINTERVAL(number ,'MONTH') 时间 FROM A
3.常用算法
sysdate+1 加一天
sysdate+1/24 加1小时
sysdate+1/(24*60) 加1分钟
sysdate+1/(24*60*60) 加1秒钟
4.add_months函数
select sysdate,add_months(sysdate,1) from dual; --加一个月
select sysdate,add_months(sysdate,-1) from dual; --减一个月
有好的方式,欢迎留言!!!