Cita:
Iniciado por german_martin Amigos
Tengo este SELECT que antes funcionaba y ahora no! jaja.
Tengo una base SQL 2000 y la columna que me trae el problema (FechasIngerso) es de tipo datetime.
Lo que hacia era hacer un SELECT de los registros de los ultimos dos dias asi:
Código:
SELECT Nombres, FechasIngreso
FROM Personal
WHERE Personas = 1 AND CurrentDate <= CONVERT(varchar, GETDATE() - 2, 112)
Antes me traia los registros de los ultimos dos dias, ahora no se porque me trae uno del 21 de febrerooo!! asi: 21/02/2010 17:30:07
A alguien se le ocurre que puede estar pasando?? Estoy desesperado! No entiendo porque me trae solo ese! El horario del servidor esta bien y tengo un monton de registros con fecha de ayer (ej; 28/03/2010 8:34:10) y de antes de ayer, etc,etc. Use varios ejemplos que vi en google pero nada....
help help!
Hola
No se si probaste con las funciones de fecha en este caso el
DATEDIFF(parte, finicio, ffinal)
Devuelve un numero y si el inicio es igual al final devuelve 0 eso querra decir 0 es hoy y 1 es ayer si quisieras mas de 2 dias de antiguedad maneja el valor de comparacion y cual seria tu fecha inicial o fecha final
prueba la primera consulta y revisa el resultado del datediff
y despues ejecutas la segunda y veras como aplicarlo dentro de tus necesidades
Código SQL:
Ver originalSELECT Nombres, FechasIngreso , datediff(dd,CurrentDate,getdate())
FROM Personal
GO
SELECT Nombres, FechasIngreso , datediff(dd,CurrentDate,getdate())
FROM Personal
WHERE Personas = 1 AND datediff(dd,CurrentDate,getdate())<=1
con respecto a tu convert esta devolviendo un valor varchar y me parece que comparas quien es menor con una fecha...... datetime < varchar
con el datediff comparas siempre datos de tipo datetime pero segun el parametro parte te devuelve la diferencia entre ambas ya sea segundos hasta años
www.bitxense.com.pe | Soluciones Informaticas S.A.C. -
[email protected]
Cualquier duda soy Jhon Bautista Palomino aqui esta mi correo MSN
[email protected] Lima-Peru