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

DatoTid på Hvor-klausul Oracle

TO_DATE('01/01/1970 00:00:00', 'MM/DD/YYYY HH24:MI:SS') konverterer en streng (første argument) i et bestemt format (andet argument) til en dato.

(create_date / ( 60 * 60 * 24 )) create_date indeholder sekunder, konverterer dette udtryk dem til antal dage (1 minut =60 sekunder, 1 time =60 minutter, 1 dag =24 timer => 60*60*24 =antallet af sekunder på en dag). Når du tilføjer et tal til en dato, mener Oracle, at dette nummer indeholder dage, og det er derfor, du har brug for en sådan samtale.

TO_DATE('01/01/1970 00:00:00', 'MM/DD/YYYY HH24:MI:SS') + (create_date / ( 60 * 60 * 24 )) giver dig en dato gemt i create_date, men i "traditionelt" format

Det ser ud til, at du skal sammenligne unix-tid med dato. Det ville være bedre at bruge denne betingelse:

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


  1. Blokerer '0000-00-00' fra MySQL-datofelter

  2. Hvordan kan jeg angive herokus MIME-type?

  3. Forståelse af virkningerne af høj latens i MySQL- og MariaDB-løsninger med høj tilgængelighed

  4. Sådan konverteres store bogstaver til små bogstaver i SQL Server - LOWER()