Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Selecione da tabela sabendo apenas a data sem hora (ORACLE)


DATE é uma palavra-chave reservada no Oracle, então estou usando o nome da coluna your_date em vez de.

Se você tiver um índice em your_date , Eu usaria
WHERE your_date >= TO_DATE('2010-08-03', 'YYYY-MM-DD')
  AND your_date <  TO_DATE('2010-08-04', 'YYYY-MM-DD')

ou BETWEEN :
WHERE your_date BETWEEN TO_DATE('2010-08-03', 'YYYY-MM-DD')
                    AND TO_DATE('2010-08-03 23:59:59', 'YYYY-MM-DD HH24:MI:SS')

Se não houver índice ou se não houver muitos registros
WHERE TRUNC(your_date) = TO_DATE('2010-08-03', 'YYYY-MM-DD')

deve ser suficiente. TRUNC sem parâmetro remove horas, minutos e segundos de um DATE .

Se o desempenho realmente importa, considere colocar um Function Based Index nessa coluna:
CREATE INDEX trunc_date_idx ON t1(TRUNC(your_date));