Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/02/2011, 09:33
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: Consulta oracle con fecha de ayer

Hola hcbosch:

Creo que el problema está en que olvidas que la función sysdate te regresa la fecha y HORA del sistema. Puede ser que al momento de que almacenas la información en tu tabla también estás guardando los registros con horas. Además, al sólo comparar >= entonces te traerá todos los registros de ayer pero también los registros de hoy. intenta con esto:

Código SQL:
Ver original
  1. SELECT a.DATETIME, a.OBJ, a.EXCHANGE_ID, a.ACCLOAD, a.NSCAN
  2. FROM STATDBA.a
  3. WHERE
  4. a.DATETIME >= to_date(to_char(sysdate - 1, 'dd/mm/yyyy'), 'dd/mm/yyyy') AND
  5. a.DATETIME <= to_date(to_char(sysdate - 1, 'dd/mm/yyyy')||' 23:59:59', 'dd/mm/yyyy hh24:mi:ss')

Lo que hago aquí es quitarle las horas a la fecha y formar un rango entre las 00:00:00 hrs del día anterior hasta las 23:59:59 del mismo día, puedes comprobar las conversiones así:

Código SQL:
Ver original
  1. SELECT to_char(to_date(to_char(sysdate - 1, 'dd/mm/yyyy'), 'dd/mm/yyyy'), 'dd/mm/yyyy hh24:mi:ss') inicial,
  2. to_char(to_date(to_char(sysdate - 1, 'dd/mm/yyyy')||' 23:59:59', 'dd/mm/yyyy hh24:mi:ss'), 'dd/mm/yyyy hh24:mi:ss') final
  3. FROM dual;

Espero que te sirva el código

Saludos
Leo.