Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Consulta oracle con fecha de ayer

Estas en el tema de Consulta oracle con fecha de ayer en el foro de Oracle en Foros del Web. Hola a todos: Estoy tratando de hacer una consulta que me saque todos los datos de ayer. He probado de varias maneras y siempre obtengo ...
  #1 (permalink)  
Antiguo 17/02/2011, 08:42
 
Fecha de Ingreso: julio-2010
Mensajes: 64
Antigüedad: 13 años, 9 meses
Puntos: 1
Consulta oracle con fecha de ayer

Hola a todos:
Estoy tratando de hacer una consulta que me saque todos los datos de ayer. He probado de varias maneras y siempre obtengo como mínimos los datos de ayer y antier. Alguien sabe como filtro para obtener solo los datos de ayer?
Aqui un ejemplo que me devuelve los datos del 16 y 17.

select a.DATETIME, a.OBJ, a.EXCHANGE_ID, a.ACCLOAD, a.NSCAN from STATDBA.a
where (a.DATETIME>=(SYSDATE - 1))
  #2 (permalink)  
Antiguo 17/02/2011, 09:33
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 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.
  #3 (permalink)  
Antiguo 17/02/2011, 09:50
 
Fecha de Ingreso: julio-2010
Mensajes: 64
Antigüedad: 13 años, 9 meses
Puntos: 1
De acuerdo Respuesta: Consulta oracle con fecha de ayer

Muchisimas gracias. Me funcionó perfecto!!

Etiquetas: fechas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:59.