Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-12-2006
chipsoni chipsoni is offline
Miembro
 
Registrado: nov 2005
Posts: 75
Poder: 19
chipsoni Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 18-12-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
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
Responder Con Cita
  #3  
Antiguo 18-12-2006
chipsoni chipsoni is offline
Miembro
 
Registrado: nov 2005
Posts: 75
Poder: 19
chipsoni Va por buen camino
El codigo correcto para Delphi 7 y MySQL es:

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

Gracias
Responder Con Cita
  #4  
Antiguo 19-12-2006
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
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()
Responder Con Cita
  #5  
Antiguo 19-12-2006
chipsoni chipsoni is offline
Miembro
 
Registrado: nov 2005
Posts: 75
Poder: 19
chipsoni Va por buen camino
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ú.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Diferencia de fechas noshy Varios 3 31-05-2006 18:19:24
Diferencia en dias entre dos fechas. AMINOA2R Firebird e Interbase 2 15-12-2005 15:58:37
¿Alguien sabe de una función que devuelva la diferencia entre dos fechas? nuri Varios 8 21-07-2005 00:32:41
Calcular diferencia de años entre dos fechas bismarito Firebird e Interbase 2 23-08-2003 17:13:03
Diferencia entre fechas.... seb@ OOP 1 21-08-2003 15:57:22


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


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
Copyright 1996-2007 Club Delphi