En Oracle, un DATE es un punto en el tiempo. Siempre tiene un componente de tiempo con una precisión para el segundo. todate('08-Jun-2010', 'dd-Mon-yyyy')
está en Oracle lo mismo que todate('08-Jun-2010 00:00:00', 'dd-Mon-yyyy hh24:mi:ss')
. Por lo tanto, si selecciona las filas hasta esa fecha, no obtendrá ninguna fila ese día con un componente de tiempo no igual a 00:00
.
Si desea seleccionar todas las filas hasta e incluyendo 08-JUN-2010
, se recomienda usar:
< to_date('09-06-2010', 'dd-MM-yyyy')
o
<= to_date('08-06-2010 23:59:59', 'dd-MM-yyyy hh24:mi:ss')
Nota - corregí el formato de fecha: se necesita para usar MON
si desea usar el nombre abreviado del mes. Sugeriría utilizar MM
en su lugar, para que no se produzca un error cuando alguien cambia la configuración de su cliente (NLS_DATE_LANGUAGE
). También prefiere el uso de YYYY
en lugar de YY
.
Creo que el nombre abreviado del mes es el formato 'MON' no 'MMM' – Sujee
1 de la razón para usar 'MM' en lugar del formato "nombre abreviado del mes". – Sujee
@Sujee: gracias, he actualizado mi respuesta –