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

Comparación de fechas

Estas en el tema de Comparación de fechas en el foro de SQL Server en Foros del Web. Hola, estaba haciendo un procedimiento almacenado que borrase datos de varias tablas a partir de una fecha, por ejemplo: borrar de la tabla TABLA1 aquellos ...
  #1 (permalink)  
Antiguo 08/04/2010, 04:52
 
Fecha de Ingreso: abril-2010
Mensajes: 2
Antigüedad: 14 años
Puntos: 0
Comparación de fechas

Hola,

estaba haciendo un procedimiento almacenado que borrase datos de varias tablas a partir de una fecha, por ejemplo: borrar de la tabla TABLA1 aquellos datos que tengan una fecha, en la columna NOMBRE_FECHA superior a 6 meses.

Si cojo la sentencia y la pego directamente en el editor de consultas se ejecuta perfectamente, por ejemplo DELETE FROM TABLA1 WHERE FECHA1<getdate(), pero en el procedimiento almacenado me da error. Los datos que contiene @NOMBRE_TABLA y @NOMBRE_FECHA los obtengo con un cursor. Os adjunto un trozo del procedimiento a ver si me podéis echar una mano.

Gracias.

DECLARE @SQL AS VARCHAR(500)
DECLARE @NOMBRE_TABLA AS VARCHAR(50)
DECLARE @NOMBRE_FECHA AS VARCHAR(50)
DECLARE @FEC_AUX AS DATETIME

SET @FEC_AUX=dateadd(month,-10,getdate())

SET @SQL='DELETE FROM '+@NOMBRE_TABLA + ' WHERE '+@NOMBRE_FECHA+'<' + @FEC_AUX

EXEC @SQL

Msg 241, Level 16, State 1, Procedure MantenmientoTablasHistoricas, Line 43
Conversion failed when converting datetime from character string.


Por el error creo que es porque al hacer la comparación @NOMBRE_FECHA es VARCHAR(50) y @FEC_AUX es DATETIME, pero es que tiene que ser así.
  #2 (permalink)  
Antiguo 08/04/2010, 12:50
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Comparación de fechas

La fecha que estas obteniendo en @NOMBRE_FECHA, llega en un momento que NO ES VALIDA, el mensaje es muy claro
  #3 (permalink)  
Antiguo 08/04/2010, 17:21
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Comparación de fechas

Prueba asi:
Código SQL:
Ver original
  1. SET @SQL='DELETE FROM '+@NOMBRE_TABLA + ' WHERE '+@NOMBRE_FECHA+' < ''' + CONVERT(CHAR(8),@FEC_AUX,112) + ''''
Imagino que en @NOMBRE_FECHA va el nombre de la columna.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #4 (permalink)  
Antiguo 09/04/2010, 04:04
 
Fecha de Ingreso: abril-2010
Mensajes: 2
Antigüedad: 14 años
Puntos: 0
Respuesta: Comparación de fechas

Muchísmas gracias flaviovich, ya está solucionado

Etiquetas: fechas
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:57.