SQL Server - Comparacion

   
Vista:

Comparacion

Publicado por Juan Luis  (2 intervenciones) el 22/02/2008 20:33:02
Saludos
Tego la siguiente situacion :
Dentro de mi tabla actividad tengo un campo FechaActividad es de tipo datetime, mi problema radica que mediante un query quiero que me traiga todos aquellos registros que tengan la fecha del dia , para ello utilizo getdate()
Si hago lo siguiente
Select *from actividad where fechaactividad = Getdate() "No me devuelve nada , y revisando la base si hay registros con la fecha actual"
Y si hago esto otro
Select *from actividad where fechaactividad <= Getdate()
Select *from actividad where fechaactividad >= Getdate()
"Para ambos casos si me devuelve un resultado "
Intente hacer esto
Select *from actividad where fechaactividad > Getdate() and fechaactividad < Getdate() "Pero tampoco me devuelve un resultado "
Tambien intente esto

DECLARE @TODAY DATETIME;
SET @TODAY = GETDATE();
SELECT *FROM ACTIVIDAD
WHERE FechaActividad = @TODAY or
FechaActividad LIKE @TODAY;

"Pero tampoco me devuelve un resultado" Podria alguien ayudarme
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Comparacion

Publicado por Isaias (3308 intervenciones) el 22/02/2008 20:46:13
Juan Luis

Las columnas de tipo DATETIME, al igual que en otros motores, SQL SERVER, los almacena en forma ANSI o ISO

YYYYMMDD HH:MM:SS, NNN

Por tanto, si utilizamos la comparacion COLUMNA = GETDATE(), es posible que nos de algun resultado, pero tendria que encontrar algo EXACTAMENTE IGUAL, contemplando, el formato anteriormente descrito.

Ahora bien, si requerimos buscar algo en especifico, como es su caso, "LOS DEL DIA DE HOY", entonces podremos recurrir a las funciones CAST/CONVERT, DAY, YEAR, MONTH, etc. para llegar a nuestro objetivo

Por ejemplo, para hacer una comparacion con IGUAL

SELECT *FROM ACTIVIDAD
WHERE FechaActividad = CONVERT(CHAR(8), GETDATE(), 112)

o bien

SELECT *FROM ACTIVIDAD
WHERE FechaActividad >= CONVERT(CHAR(8), GETDATE(), 112)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar