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

DateTime na cláusula Where Oracle


TO_DATE('01/01/1970 00:00:00', 'MM/DD/YYYY HH24:MI:SS') converte uma string (primeiro argumento) em determinado formato (segundo argumento) em uma data.

(create_date / ( 60 * 60 * 24 )) create_date contém segundos, essa expressão os converte no número de dias (1 minuto =60 segundos, 1 hora =60 minutos, 1 dia =24 horas => 60*60*24 =o número de segundos em um dia). Quando você adiciona um número a uma data, a Oracle pensa que esse número contém dias, é por isso que você precisa dessa conversa.

TO_DATE('01/01/1970 00:00:00', 'MM/DD/YYYY HH24:MI:SS') + (create_date / ( 60 * 60 * 24 )) dá-lhe uma data armazenada em create_date mas no formato "tradicional"

Parece que você precisa comparar a hora do unix com a data. Seria melhor usar esta condição:
Select
....
From
...
Where create_date = trunc( (TO_DATE('06/30/14 21:41:11', 'MM/DD/YY HH24:MI:SS') 
                          - TO_DATE('01/01/1970 00:00:00', 'MM/DD/YYYY HH24:MI:SS')
                           ) * 24 * 60 * 60
                         );