To_dsinterval

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;