Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Modificar por diferencia de fechas (https://www.clubdelphi.com/foros/showthread.php?t=38545)

chipsoni 18-12-2006 20:25:41

Modificar por diferencia de fechas
 
Necesito cambiar el valor de dos campos de todas las entradas de una tabla cuya diferencia de la fecha con la fecha actual sea mas de 30 dias.

Se me ocurre poner esto:

UPDATE tdemanda.estado:=3, tdemanda.hecho:=1 from tdemanda
where tdemanda.fecha+30< date;

Pero no funciona, me podeis ayudar?.

Muchas gracias

Bicho 18-12-2006 21:24:51

Cita:

Empezado por chipsoni
UPDATE tdemanda.estado:=3, tdemanda.hecho:=1 from tdemanda
where tdemanda.fecha+30< date;

Hola, píllate un libro de SQL primero porque los updates no se hacen de esta manera. Busca en la Web, ahora mismo no tengo nada a mano y no te puedo recomendar ninguno, pero por internet encontrarás cientos de ellos.
Tu UPDATE podría quedar de esta manera:

Código SQL [-]
UPDATE tdemanda SET tdemanda.estado = 3, tdemanda.hecho = 1
 WHERE t.demanda.fecha+30 < SYSDATE
Te he puesto SYSDATE en rojo, porque depende del Gestor de base de datos que tengas, y que no has dicho cual es.
La mecánica es la siguiente:

Código SQL [-]
UPDATE nombretabla SET campo = valor, campo2 =valor2, etc...
 WHERE ...

Espero te sirva.

Saludos

chipsoni 18-12-2006 21:45:48

El codigo correcto para Delphi 7 y MySQL es:

UPDATE tdemanda set tdemanda.hecho=0, tdemanda.estado=3
where tdemanda.fecha+30< curdate()

Gracias

luisgutierrezb 19-12-2006 01:51:03

tienes que poner que motor de base de datos

en sql 2000 quedaria algo asi como:

Código SQL [-]
UPDATE tdemanda set tdemanda.hecho=0, tdemanda.estado=3
WHERE DateAdd(dd,tdemanda.fecha,30) < GetDate()

chipsoni 19-12-2006 19:09:16

Pues yo programo en delphi 7 y la base de datos es MySQL.

El rollo es que cuando le meto al easyphp la sentencia que he escrito antes, el curdate() se lo traga y me da justo la respuesta que busco, pero en el delphi pita y me dice que el curdate() tururú.


La franja horaria es GMT +2. Ahora son las 03:26:04.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi