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

Consulta Oracle SQL para formato de data


to_date() retorna uma data às 00:00:00, então você precisa "remover" os minutos da data que você está comparando:
select * 
from table
where trunc(es_date) = TO_DATE('27-APR-12','dd-MON-yy')

Você provavelmente quer criar um índice em trunc(es_date) se isso é algo que você está fazendo em uma base regular.

O literal '27-APR-12' pode falhar muito facilmente se o formato de data padrão for alterado para algo diferente. Portanto, certifique-se de usar sempre to_date() com uma máscara de formato adequada (ou um literal ANSI:date '2012-04-27' )

Embora você tenha feito certo ao usar to_date() e não depender de conversão implícita de tipo de dados, seu uso de to_date() ainda tem uma armadilha sutil devido ao formato 'dd-MON-yy' .

Com uma configuração de idioma diferente, isso pode falhar facilmente, por exemplo. TO_DATE('27-MAY-12','dd-MON-yy') quando NLS_LANG é definido como alemão. Evite qualquer coisa no formato que possa ser diferente em um idioma diferente. Usando um ano de quatro dígitos e apenas números, por exemplo. 'dd-mm-yyyy' ou 'yyyy-mm-dd'