Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Como puedo sumar dias a una fecha existente?

Estas en el tema de Como puedo sumar dias a una fecha existente? en el foro de Oracle en Foros del Web. Buenos dias, hace unos cuantos dias me adentre por primera vez a la programacion en Oracle y me gustaria saber como sumar dias/meses/años en una ...
  #1 (permalink)  
Antiguo 01/11/2014, 16:25
 
Fecha de Ingreso: noviembre-2014
Mensajes: 2
Antigüedad: 6 años, 1 mes
Puntos: 0
Como puedo sumar dias a una fecha existente?

Buenos dias, hace unos cuantos dias me adentre por primera vez a la programacion en Oracle y me gustaria saber como sumar dias/meses/años en una fecha actual.

Código SQL:
Ver original
  1. CREATE TABLE ORDENES
  2. (
  3. No_order NUMBER(2,0) NOT NULL PRIMARY KEY,
  4. ProductId NUMBER(3),
  5. FECHA_ENTREGA DATE,
  6. );
  7.  
  8. --Valores
  9. INSERT INTO ORDENES
  10. VALUES ('01', '01', '20-12-2013')
  11. INSERT INTO ORDENES
  12. VALUES ('02', '02', '23-11-2013')
  13. INSERT INTO ORDENES
  14. VALUES ('03', '03', '03-01-2014')
  15. INSERT INTO ORDENES
  16. VALUES ('04', '07', '29-12-2013')

Por ejemplo, en los no_order 02 y 04 quisiera sumarle 5 dias, se puede sumarle a ambos en una sola sentencia o tendria que hacer para ambos?

Saludos!
  #2 (permalink)  
Antiguo 01/11/2014, 16:30
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 13 años
Puntos: 2656
Respuesta: Como puedo sumar dias a una fecha existente?

Por lo pronto, las conversiones implícitas son una mala idea en Oracle. Puedes tener problemas de errores inesperados:
Código SQL:
Ver original
  1. CREATE TABLE ORDENES
  2. (
  3. No_order NUMBER(2,0) NOT NULL PRIMARY KEY,
  4. ProductId NUMBER(3),
  5. FECHA_ENTREGA DATE,
  6. );
  7.  
  8. --Valores
  9. INSERT INTO ORDENES
  10. VALUES (1, 1, TO_DATE('20-12-2013', 'dd-mm-yyyy'))
  11. INSERT INTO ORDENES
  12. VALUES (2, 2, TO_DATE('23-11-2013', 'dd-mm-yyyy'))
  13. INSERT INTO ORDENES
  14. VALUES (3, 3, TO_DATE('03-01-2014', 'dd-mm-yyyy'))
  15. INSERT INTO ORDENES
  16. VALUES (4, 7,TO_DATE( '29-12-2013', 'dd-mm-yyyy'))

Luego lo que preguntas:
Código SQL:
Ver original
  1. UPDATE ordenes
  2. SET fecha_entrega = fecha_entrega + 5
  3. WHERE no_order IN(2, 4);
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 01/11/2014, 17:17
 
Fecha de Ingreso: noviembre-2014
Mensajes: 2
Antigüedad: 6 años, 1 mes
Puntos: 0
Respuesta: Como puedo sumar dias a una fecha existente?

Muchas gracias por el consejo y la ayuda, gnzsoloyo, pero en caso de querer sumar semanas, meses o años que se deberia de hacer?

O tan solo se puede cambiar por dias?
  #4 (permalink)  
Antiguo 04/11/2014, 07:47
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 11 años, 9 meses
Puntos: 360
Respuesta: Como puedo sumar dias a una fecha existente?

Mira las funciones:
add_months
months_between
Y la suma implicita de dias que te dice gnzsoloyo.

Para cualquier operación, con estas es mas que suficiente.
Por ejemplo para años 15 sería:

Código SQL:
Ver original
  1. SELECT add_months(sysdate,(15*12)) FROM dual;
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: dias, fecha
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:27.