Ver Mensaje Individual
  #9 (permalink)  
Antiguo 30/03/2010, 18:42
T3rryMan
 
Fecha de Ingreso: enero-2010
Ubicación: SJM Lima - Peru
Mensajes: 55
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: SELECT para traer los registros de los ultimos dos dias

Cita:
Iniciado por german_martin Ver Mensaje
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 original
  1. SELECT   Nombres, FechasIngreso , datediff(dd,CurrentDate,getdate())
  2. FROM         Personal
  3. GO
  4. SELECT   Nombres, FechasIngreso , datediff(dd,CurrentDate,getdate())
  5. FROM         Personal
  6. 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