Foros del Web » Programando para Internet » ASP Clásico »

Problemas comparando fechas en DELETE

Estas en el tema de Problemas comparando fechas en DELETE en el foro de ASP Clásico en Foros del Web. Amigos, Les escribo porque tengo un problema que no he podido resolver. Al parecer es muy sencillo, pero yo no lo veo. El codigo es ...
  #1 (permalink)  
Antiguo 18/11/2004, 15:00
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 6 meses
Puntos: 6
Problemas comparando fechas en DELETE

Amigos,

Les escribo porque tengo un problema que no he podido resolver. Al parecer es muy sencillo, pero yo no lo veo. El codigo es el siguiente:

Set objCon = CreateObject("ADODB.Connection")
Set objRec = CreateObject("ADODB.Recordset")
objCon.Open strCon
Set objRec.ActiveConnection = objCon
objRec.LockType = 2
sql = "delete from passwords where fecha) < "&now()
objRec.Open sql
objCon.Close
Set objRec = Nothing
Set objCon = Nothing

El error que me arroja es :

Microsoft JET Database Engine (0x80040E14)
Error de sintaxis (falta operador) en la expresión de consulta 'fecha <18-11-2004 12:56:44'.

Si cambio el SQL para colocarle comillas asi:

sql = "delete from passwords where fecha) < '"&now()&"'"

Entonces falla así:

Microsoft JET Database Engine (0x80040E07)
No coinciden los tipos de datos en la expresión de criterios.

Lo que descarta la posibilidad de que esté interpretando la fecha como si fuese otro tipo de datos...

Por otra parte, en la misma tabla existe otro campo alfanumerico llamado "telefono" e hice la prueba de cambiar el SQL asi:

variable = 4444
sql = "delete from passwords where telefono ='"&variable&"'"

El resultado es que se borró todos los registros cuyo telefono = 4444...

La pregunta es : ¿Que hice mal??

Podrían ustedes darle una miradita al codigo y sacarme de este loop en el que estoy metido??

Un millón de gracias,
  #2 (permalink)  
Antiguo 18/11/2004, 15:14
 
Fecha de Ingreso: marzo-2003
Ubicación: onde toy?
Mensajes: 1.437
Antigüedad: 21 años, 3 meses
Puntos: 9
sql = "delete from passwords where fecha) < '"&now()&"'"

tienes un problema aqui '"&now()&"'".... reemplazalo por

# & date & # si es que tienes declarado tu campo como fecha en la BDD
__________________
Buena Vida...
Francisco
  #3 (permalink)  
Antiguo 18/11/2004, 15:44
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 6 meses
Puntos: 6
Gracias Bluesman74cl,

Sin embargo, acabo de probar y aunque no falla, tampoco borra los registros cuya fecha es menor que la de hoy.

Probé de esta manera :

sql = "delete from passwords where fecha <"&date

y puse un response.write para ver que salía y :

delete from passwords where fecha <18-11-2004

Tambíen probé de esta otra (en realidad no entendí mucho lo que pusiste (# & date & # )

sql = "delete from passwords where fecha <#"&date&"#"

y el response.write me dijo :

delete from passwords where fecha <#18-11-2004#

¿Que hice mal de nuevo?

Mil gracias por sus respuestas.
  #4 (permalink)  
Antiguo 18/11/2004, 16:01
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 6 meses
Puntos: 6
Funcionó....la respuesta definitiva es :
sql = "delete from passwords where fecha < # "& date &" #"

Ahora bien...porque no puede hacerse con now?

Que pasa si estoy interesado en eliminar los registros de hace 1 segundo atrás y no solo desde ayer hacia atrás??
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 21:32.