Hoy vamos a hablar de una sencilla función, TO_DSINTERVAL, muy útil para sumar fechas o intervalos de tiempo.
La función TO_DSINTERVAL, convierte un cadena con formato ‘D[D…] HH:MI:SS’ en tipo de dato INTERVAL DAY TO SECOND.
La parte D[D…] indica el número de días entre 0 y 99999999. La parte HH:MI:SS indica el número de horas, minutos y segundos en un intervalo de 0:0:0 a 23:59:59.
La sintaxis de la función es:
to_dsinterval( character [ nls_parameter ] )
Aparece a partir de Oracle 9.
Ejemplos
to_dsinterval(‘150 08:30:00’) | would return ‘+000000150’ |
to_dsinterval(’80 12:30:00′) | would return ‘+000000080’ |
to_dsinterval(’95 18:30:00′) | would return ‘+000000095’ |
Ejemplos prácticos en la suma de fechas:
Sumar 23 horas 59 minutos a una fecha
select to_char(sysdate, 'dd/mon/yyyy hh:mi:ss') dia, to_char((sysdate)+ TO_DSINTERVAL('0 23:59:00'), 'dd/mon/yyyy hh:mi:ss') dia_incrementado from dual;