Categorized | Base de Datos, Computación

Cómo agregar día, hora, minuto, segundo a un valor de fecha en Oracle

Posted on 07 febrero 2013 by Staff

La fecha aritmética es muy común enaplicación de base de datos . En Oracle, puede agregar, restar y comparar columnas DATE, pero no se puede multiplicar o dividir la misma, oracle almacena siglo, año, mes, día, hora, minutos y segundos, como parte de la columna DATE.

Ahora echemos un vistazo a cómo agregar día / hora / minuto / segundo a un valor de fecha. en este caso Oracle espera un número constante en la aritmética de fechas como el número de días, en otras palabras, es necesario convertir hora, minuto y segundo a la fracción de un día y luego se puede añadir orestar ese valor a partir de un valor de fecha. Aquí están algunos ejemplos:

    1. Añadir día.
      select to_date(’02-22-2008 10:30:30′,’mm-dd-yyyy hh24:mi:ss’) today,
      to_date(’02-22-2008 10:30:30′,’mm-dd-yyyy hh24:mi:ss’)+1 next_day
      from dual;
      TODAY NEXT_DAY
      ————————- ————————-
      02-22-08 10:30:30 02-23-08 10:30:30
    2. Añadir hora.
      select to_date(’02-22-08 10:30:30′,’mm-dd-yy hh24:mi:ss’) today,
      to_date(’02-22-08 10:30:30′,’mm-dd-yy hh24:mi:ss’)+ 1/24 next_hour
      from dual;
      TODAY NEXT_HOUR
      ———————— ————————
      02-22-08 10:30:30 02-22-08 11:30:30
    3. Añadir minuto.
      select to_date(’02-22-08 10:30:30′,’mm-dd-yy hh24:mi:ss’) today,
      to_date(’02-22-08 10:30:30′,’mm-dd-yy hh24:mi:ss’)+ 1/(24*60) next_min
      from dual;
      TODAY NEXT_MIN
      ———————— ————————
      02-22-08 10:30:30 02-22-08 10:31:30
    4. Añadir segundo.
      select to_date(’02-22-08 10:30:30′,’mm-dd-yy hh24:mi:ss’) today,
      to_date(’02-22-08 10:30:30′,’mm-dd-yy hh24:mi:ss’)+ 1/(24*60*60) next_sec
      from dual;
      TODAY NEXT_SEC
      ———————— ————————
      02-22-08 10:30:30 02-22-08 10:30:31
  1. Restar día.
    select to_date(’02-22-2008 10:30:30′,’mm-dd-yyyy hh24:mi:ss’) today,
    to_date(’02-22-2008 10:30:30′,’mm-dd-yyyy hh24:mi:ss’) – 1 prev_day
    from dual;
    TODAY PREV_DAY
    ————————- ————————-
    02-22-08 10:30:30 02-21-08 10:30:30
  2. Restar hora.
    select to_date(’02-22-08 10:30:30′,’mm-dd-yy hh24:mi:ss’) today,
    to_date(’02-22-08 10:30:30′,’mm-dd-yy hh24:mi:ss’) – 1/24 prev_hour
    from dual;
    TODAY PREV_HOUR
    ———————— ————————
    02-22-08 10:30:30 02-22-08 09:30:30
  3. Restar minuto.
    select to_date(’02-22-08 10:30:30′,’mm-dd-yy hh24:mi:ss’) today,
    to_date(’02-22-08 10:30:30′,’mm-dd-yy hh24:mi:ss’) – 1/(24*60) prev_min
    from dual;
    TODAY PREV_MIN
    ———————— ————————
    02-22-08 10:30:30 02-22-08 10:29:30
  4. Restar segundo.
    select to_date(’02-22-08 10:30:30′,’mm-dd-yy hh24:mi:ss’) today,
    to_date(’02-22-08 10:30:30′,’mm-dd-yy hh24:mi:ss’) – 1/(24*60*60) prev_sec
    from dual;
    TODAY PREV_SEC
    ———————— ————————
    02-22-08 10:30:30 02-22-08 10:30:29

 

El valor de fecha en Oracle tiene dos componentes, la fecha y la hora . Oracle guardae hora, minuto y segundo junto con la fecha, como se puede ver en los ejemplos anteriores, la aritmética de fechas en Oracle es simple y fácil de usar.

Leave a Reply

Advertise Here
Advertise Here