SQL - Como hacer esta comparacion

 
Vista:

Como hacer esta comparacion

Publicado por Ger (4 intervenciones) el 09/03/2005 12:18:44
Hola, estoy intentando hacer una comparacion entre fechas en SQL Server pero no consigo que funcione.
La situacion es que tengo una tabla a la que voy añadiendo nuevos libros, y quiero poder hacer una consulta que me diga los libros que se han añadido ese mismo dia, es decir, comparar la fecha de la tabla con la fecha actual del sistema y no hay manera.
El formato de fecha que se guarda en la tabla es 17/10/02-20:47:47
Espero que puedan ayudarme.
Muchas gracias
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:Como hacer esta comparacion

Publicado por Isaías Islas (5072 intervenciones) el 09/03/2005 16:11:17
Hay 2 formas:

-- Fecha FIJA
select * from MyTabla where ColFecha >= '2005-03-09'

-- Fecha del SISTEMA
select * from MyTabla where ColFecha >= convert(char(10), getdate(), 120)
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

RE:Como hacer esta comparacion

Publicado por Ger (4 intervenciones) el 09/03/2005 17:09:15
Si le pongo esto:

select * from MyTabla where creationDate >= convert(char(10), getdate(), 120);

Me devuelve todas las filas de la tabla, y eso que las fechas son del año 2002, 2003 y 2004.
En teoria no deberia devolver ninguna.
he probado poniendo solo = pero no devuelve nada.
Lo que me interesaria es que devolviera solo los resultados que coincidan con la fecha actual del sistema, pero no estoy seguro si asi funciona pues si busco fechas mayores me devuelve unas que no pueden ser.
Podrias tambien explicarme que es cada parametro de la funcion convert?
Muchas gracias por tu ayuda.
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

RE:Como hacer esta comparacion

Publicado por Isaías Islas (5072 intervenciones) el 09/03/2005 20:00:08
¿Es SQL Server, cierto?

La estructura del CONVERT, es

CHAR(10) = CARACTER DE 10 POSICIONES
getdate() = FECHA DEL SISTEMA
120 = FORMATO YYY-MM-DD

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

RE:Como hacer esta comparacion

Publicado por Ger (4 intervenciones) el 10/03/2005 08:56:08
Y que otros formatos de fecha existentes hay?
porque para hacer la comparación me interesaría mas tener un formato tipo DD/MM/YY

En este momento las fechas ya insertadas las tengo en formato DD/MM/YY HH:MM:SS y me interesaría poder coger solo la parte DD/MM/YY.
Que función podría usar?, es que siempre he utilizado Oracle y ahora me encuentro que muchas funciones de Oracle no funcionan en SQL Server.
Muchas gracias

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

RE:Como hacer esta comparacion

Publicado por Isaías Islas (5072 intervenciones) el 10/03/2005 16:02:24
Primero: Supongo que estas trabajando con SQL Server.

Segundo: SQL Server, siempre almacena las fechas en formato ANSI, yyyy-mm-dd hh:mm:ss:nnnn

Tercero: En SQL Server, tienes funciones con CONVERT o CAST, DATEPART(), DATEDIFF(), DATEADD(), DAY(), MONTH(), YEAR(), para el manejo de fechas.

En el caso que tu fecha la quieras representar como DD/MM/YY, entonces:

SELECT CONVERT(CHAR(8), GETDATE(),3)
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

RE:Como hacer esta comparacion

Publicado por Angel Huerta (22 intervenciones) el 10/03/2005 19:42:45
Intenta con lo siguiente:

select *
from MyTabla
where convert(char(10), creationDate,120) = convert(char(10), getdate(), 120);
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

RE:Como hacer esta comparacion

Publicado por Isaías Islas (5072 intervenciones) el 11/03/2005 02:12:05
Para OBTENER los registros del DIA del sistema, si, pero es de muy bajo performance
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

RE:Como hacer esta comparacion

Publicado por Rodolfo (3 intervenciones) el 26/04/2005 20:38:16
haces esta consulta:

select * from tabla
where datepart(dd,fecha) = datepart(dd,getdate())
and datepart(mm,fecha) = datepart(mm,getdate())
datepart(yyyy,fecha) = datepart(yyyy,getdate())

esta consulta te busca todos los regitros que coincidan con la fecha del sistema, checa la instruccion datepart() de sql, espero que te sirva de algo

nos vemos
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