Oracle
 sql >> Base de données >  >> RDS >> Oracle

DateTime sur la clause Where Oracle

TO_DATE('01/01/1970 00:00:00', 'MM/DD/YYYY HH24:MI:SS') convertit une chaîne (premier argument) dans un certain format (deuxième argument) en une date.

(create_date / ( 60 * 60 * 24 )) create_date contient des secondes, cette expression les convertit en nombre de jours (1 minute =60 secondes, 1 heure =60 minutes, 1 jour =24 heures => 60*60*24 =le nombre de secondes dans une journée). Lorsque vous ajoutez un nombre à une date, Oracle pense que ce nombre contient des jours, c'est pourquoi vous avez besoin d'une telle conversation.

TO_DATE('01/01/1970 00:00:00', 'MM/DD/YYYY HH24:MI:SS') + (create_date / ( 60 * 60 * 24 )) vous donne une date stockée dans create_date mais au format "traditionnel"

Il semble que vous ayez besoin de comparer l'heure unix avec la date. Il serait préférable d'utiliser cette condition :

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