ultimos ultima solo seleccionar registros registro reciente primeros obtener mostrar mayor mas los fecha con sql database oracle plsql

sql - ultima - Oracle: ¿Cómo puedo seleccionar los registros SOLAMENTE de ayer?



seleccionar solo un registro sql (5)

He pasado horas buscando en la web una respuesta a esta pregunta ...

Esto es lo que tengo actualmente:

select * from order_header oh where tran_date = sysdate-1

Gracias por adelantado.


¡Este comentario es para los lectores que han encontrado esta entrada pero están usando mysql en lugar de oracle! en mysql puedes hacer lo siguiente: Hoy

SELECT * FROM WHERE date(tran_date) = CURRENT_DATE()

Ayer

SELECT * FROM yourtable WHERE date(tran_date) = DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)


Si no admite transacciones con fecha futura, algo como esto podría funcionar:

AND oh.tran_date >= trunc(sysdate-1)


Utilizar:

AND oh.tran_date BETWEEN TRUNC(SYSDATE - 1) AND TRUNC(SYSDATE) - 1/86400

Referencia: TRUNC

Llamar a una función en el tran_date significa que el optimizador no podrá usar un índice (suponiendo que exista uno) asociado con él. Algunas bases de datos, como Oracle, admiten índices basados ​​en funciones que permiten realizar funciones en los datos para minimizar el impacto en tales situaciones, pero los DBA de IME no lo permiten. Y estoy de acuerdo, no son realmente necesarios en este caso.


to_char(tran_date, ''yyyy-mm-dd'') = to_char(sysdate-1, ''yyyy-mm-dd'')


trunc(tran_date) = trunc(sysdate -1)