sql >> Base de Datos >  >> RDS >> Oracle

Consulta Oracle SQL para formato de fecha

to_date() devuelve una fecha a las 00:00:00, por lo que debe "eliminar" los minutos de la fecha con la que está comparando:

select * 
from table
where trunc(es_date) = TO_DATE('27-APR-12','dd-MON-yy')

Probablemente quieras crear un índice en trunc(es_date) si eso es algo que está haciendo sobre una base regular.

El literal '27-APR-12' puede fallar muy fácilmente si el formato de fecha predeterminado se cambia a algo diferente. Así que asegúrese de usar siempre to_date() con una máscara de formato adecuada (o un literal ANSI:date '2012-04-27' )

Aunque hiciste bien al usar to_date() y al no depender de la conversión implícita de tipos de datos, su uso de to_date() todavía tiene un escollo sutil debido al formato 'dd-MON-yy' .

Con una configuración de idioma diferente, esto podría fallar fácilmente, p. TO_DATE('27-MAY-12','dd-MON-yy') cuando NLS_LANG se establece en alemán. Evite cualquier cosa en el formato que pueda ser diferente en un idioma diferente. Usando un año de cuatro dígitos y solo números, p. 'dd-mm-yyyy' o 'yyyy-mm-dd'