sql >> Databasteknik >  >> RDS >> Oracle

DateTime på Where-klausul Oracle

TO_DATE('01/01/1970 00:00:00', 'MM/DD/YYYY HH24:MI:SS') konverterar en sträng (första argument) i ett visst format (andra argument) till ett datum.

(create_date / ( 60 * 60 * 24 )) create_date innehåller sekunder, detta uttryck omvandlar dem till antalet dagar (1 minut =60 sekunder, 1 timme =60 minuter, 1 dag =24 timmar => 60*60*24 =antalet sekunder på en dag). När du lägger till ett nummer till ett datum tror Oracle att det här numret innehåller dagar, det är därför du behöver en sådan konversation.

TO_DATE('01/01/1970 00:00:00', 'MM/DD/YYYY HH24:MI:SS') + (create_date / ( 60 * 60 * 24 )) ger dig ett datum lagrat i create_date men i "traditionellt" format

Det verkar som om du behöver jämföra unix-tid med datum. Det skulle vara bättre att använda detta villkor:

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. Oracle TO_DATE kastar INTE fel

  2. Snabb fråga för att göra normalisering på SQL-data

  3. Kan inte skapa tillägg plv8 postgresql

  4. Hur man kör ett .sql-skript från bash