Oracle
 sql >> Database >  >> RDS >> Oracle

DateTime su Where Clausola Oracle

TO_DATE('01/01/1970 00:00:00', 'MM/DD/YYYY HH24:MI:SS') converte una stringa (primo argomento) in un determinato formato (secondo argomento) in una data.

(create_date / ( 60 * 60 * 24 )) crea_data contiene secondi, questa espressione li converte nel numero di giorni (1 minuto =60 secondi, 1 ora =60 minuti, 1 giorno =24 ore => 60*60*24 =il numero di secondi in un giorno). Quando aggiungi un numero a una data, Oracle ritiene che questo numero contenga giorni, ecco perché hai bisogno di una conversazione del genere.

TO_DATE('01/01/1970 00:00:00', 'MM/DD/YYYY HH24:MI:SS') + (create_date / ( 60 * 60 * 24 )) ti dà una data memorizzata in create_date ma in formato "tradizionale"

Sembra che tu debba confrontare l'ora unix con la data. Sarebbe meglio usare questa condizione:

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
                         );