Siempre me confundo con el formato de fecha en ORACLE SQL de la consulta y pasar minutos junto a google, ¿alguien Puede explicar a mí la forma más sencilla de abordar cuando tenemos diferencias en el formato de fecha en la tabla de base de datos ?

por ejemplo tengo una columna de fecha como ES_DATE, contiene datos como el 27-ABR-12 11.52.48.294030000 SOY del tipo de Datos TIMESTAMP(6) CON la HORA LOCAL de la ZONA.

Oracle SQL de consulta para el formato de Fecha

Escribí consulta de selección simple para capturar los datos para ese día en particular y me devuelve nada. Puede alguien explicar mí ?

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

o

select * from table where es_date = '27-APR-12';
InformationsquelleAutor user2246725 | 2013-07-04

2 Comentarios

  1. 42

    to_date() devuelve una fecha a las 00:00:00, por lo que necesita para «eliminar» los minutos de la fecha en que se comparan para:

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

    Usted probablemente desea crear un índice en trunc(es_date) si que es algo que están 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 que usted utilice siempre to_date() con un formato adecuado de la máscara (o ANSI literal: date '2012-04-27')

    Aunque usted no hizo lo recto en el uso de to_date() y no depender implícito conversión de tipo de datos, el uso de to_date() todavía tiene una sutil trampa debido al formato 'dd-MON-yy'.

    Con una configuración de idioma diferente esto podría fallar con facilidad, por ejemplo, TO_DATE('27-MAY-12','dd-MON-yy') cuando NLS_LANG es el alemán. Evitar cualquier cosa en el formato que podría ser diferente en un idioma diferente. El uso de un año de cuatro dígitos y sólo números por ejemplo, 'dd-mm-yyyy' o 'yyyy-mm-dd'

    • entonces usted no nos dice todo. Por favor, crear un sencillo ejemplo en sqlfiddle.com que muestra el problema.
    • me funciona: sqlfiddle.com/#!4/1eb57/5
    • No estoy recibiendo los datos exactos de la fecha aquí es :- Where B.Timelog = to_date('14-Apr-17','DD-MM-YY')
  2. 2

    si usted está usando el mismo formato de fecha y tiene consulta de selección donde la fecha en oracle :

       select count(id) from Table_name where TO_DATE(Column_date)='07-OCT-2015';

    To_DATE proporcionado por oracle

Dejar respuesta

Please enter your comment!
Please enter your name here