Oracle - Consulta de fechas

   
Vista:

Consulta de fechas

Publicado por Rodrigo (6 intervenciones) el 13/03/2015 18:04:41
Hola a todos,

Estoy necesitando a hacer una consulta pero la verdad es que no me sale hacerla correctamente!
Estoy trabajando con una bd oracle.

Lo que quiero es traer los registros de ayer a las 6 hasta hoy a las 6 pero usando "sysdate -1" porque va a ser un script

Tengo:

Fecha campo1
01/02/2015 06:00
01/02/2015 08:00
01/02/2015 21:00
02/02/2015 03:00
02/02/2015 05:59
02/02/2015 07:00
03/02/2015 06:00

Que el resultado sea este:
01/02/2015 06:00
01/02/2015 08:00
01/02/2015 21:00
02/02/2015 03:00
02/02/2015 05:59
(osea de 6 a 6 del dia siguiente)

Select fecha, campo1 from Tabla where fecha between sysdate -1 and sysdate (Trae todo de hoy y ayer)
Pudo hacerlo hardcodeado pero no me sirve (Ejemplo: Select fecha, campo1 from Tabla where fecha between 11/03/2015 06:00 and 12/03/2015 06:00)

¡Como podría hacer para adjuntarle a la fecha de hoy una hora específica????



Gracias desde ya
Saludos
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

Consulta de fechas

Publicado por luis (232 intervenciones) el 16/03/2015 15:23:55
Hola Rodrigo, seria algo así:

SELECT * FROM (
SELECT TO_DATE('01/02/2015 06:00','DD/MM/YYYY HH24:MI') FECHA FROM DUAL
UNION ALL
SELECT TO_DATE('01/02/2015 08:00','DD/MM/YYYY HH24:MI') FROM DUAL
UNION ALL
SELECT TO_DATE('01/02/2015 21:00','DD/MM/YYYY HH24:MI') FROM DUAL
UNION ALL
SELECT TO_DATE(' 02/02/2015 03:00','DD/MM/YYYY HH24:MI') FROM DUAL
UNION ALL
SELECT TO_DATE('02/02/2015 05:59','DD/MM/YYYY HH24:MI') FROM DUAL
UNION ALL
SELECT TO_DATE('02/02/2015 07:00','DD/MM/YYYY HH24:MI') FROM DUAL
UNION ALL
SELECT TO_DATE('03/02/2015 06:00','DD/MM/YYYY HH24:MI') FROM DUAL) X
WHERE X.FECHA >= TO_DATE('01/02/2015 06:00','DD/MM/YYYY HH24:MI')
AND X.FECHA <= TO_DATE('01/02/2015 06:00','DD/MM/YYYY HH24:MI')+1 ;


Si quieres trabajar con el sysdate, el sysdate tiene por defecto los datos de fecha y hora.

Saludos

Luis
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

Consulta de fechas

Publicado por Rafael (177 intervenciones) el 17/03/2015 17:26:11
Podrias usar algo similar a esto:

1
DATE_ADD(SYSDATE() -1, INTERVAL 18 HOURS)
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

Consulta de fechas

Publicado por luis (232 intervenciones) el 17/03/2015 19:18:47
Hola Rodrigo, puedes ser más preciso con tus consultas.
Que es lo que quieres obtener?


Saludos

Luis.
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

Consulta de fechas

Publicado por Jorge (21 intervenciones) el 18/03/2015 17:05:29
Creo que era asi, lamentablemente ahora no cuento con oracle para probar. Supongo que te refieres a las 6 de la mañana.

1
2
3
4
SELECT *
FROM   tabla
WHERE  fecha BETWEEN (TRUNC(sysdate-1) + 6/24)
                AND (TRUNC(sysdate) + 6/24);
Saludos
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

Consulta de fechas

Publicado por Rodrigo (6 intervenciones) el 27/03/2015 13:12:49
Al final pude hacerlo de la siguiente manera:

fecha between
TO_DATE(TO_CHAR(SYSDATE -1, 'DD-MM-YYYY') || ' 06:00:00 AM', 'DD-MM-YYYY HH:MI:SS AM')
and TO_DATE(TO_CHAR(SYSDATE, 'DD-MM-YYYY') || ' 06:00:00 AM', 'DD-MM-YYYY HH:MI:SS AM')

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar