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

Problema campo TimeStamp

Estas en el tema de Problema campo TimeStamp en el foro de Bases de Datos General en Foros del Web. Buenas, os explico mi problema. Tengo que borrar de BB.DD. todos los registros anteriores a cierta fecha, el caso es que el campo donde se ...
  #1 (permalink)  
Antiguo 16/03/2010, 00:52
 
Fecha de Ingreso: febrero-2010
Mensajes: 2
Antigüedad: 14 años, 10 meses
Puntos: 0
Problema campo TimeStamp

Buenas,


os explico mi problema. Tengo que borrar de BB.DD. todos los registros anteriores a cierta fecha, el caso es que el campo donde se almacena la fecha se llama Timestamp y, claro, da error al ejecutar el delete.

delete from tabla t where t.TIMESTAMP > 2010-03-01


Existe alguna manera de hacer esta query o voy a tener que renombrar el campo?
  #2 (permalink)  
Antiguo 16/03/2010, 05:13
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problema campo TimeStamp

Cita:
os explico mi problema. Tengo que borrar de BB.DD. todos los registros anteriores a cierta fecha, el caso es que el campo donde se almacena la fecha se llama Timestamp y, claro, da error al ejecutar el delete.
El hecho de que te de error el DELETE no tiene relación con el tipo de campo.
En todo caso, si el problema es la fecha, lo que puede suceder es que no le estés indicando correctamente en la sentencia el valor de comparación como para que interprete bien la fecha.

Postea el error que te da, y la sentencia usada, de esa forma podremos saber dónde está la falla

Otra posibilidad es que estés tratando de borrar registros que tienen restricciones de FK. Caso en el que la cosa debe hacerse de otro modo, o bien, si es correcta la sintaxis que estás mostrando:
Código SQL:
Ver original
  1. DELETE FROM tabla t
  2. WHERE t.TIMESTAMP > 2010-03-01
Tiene dos problemas:
1. TIMESTAMP es un tipo de columna, por lo tanto es palabra reservada y no debe ser usada como nombre de objeto de base de datos.
2. Estás pidiendo que te compare el valor de una columna con una operación matemática, ya que 2010-03-01 no es una fecha, sino el resultado de
(2010-3-1), o sea 2006, como número.

Pruebalo así (si es que ese campo se llama de esa forma):
Código SQL:
Ver original
  1. DELETE FROM tabla t
  2. WHERE t.`TIMESTAMP` > '2010-03-01'
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 16/03/2010 a las 05:22

Etiquetas: timestamp, campos
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 23:24.