Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Data i godzina w miejscu, w którym klauzula Oracle

TO_DATE('01/01/1970 00:00:00', 'MM/DD/YYYY HH24:MI:SS') konwertuje napis (pierwszy argument) w określonym formacie (drugi argument) na datę.

(create_date / ( 60 * 60 * 24 )) data_utworzenia zawiera sekundy, to wyrażenie konwertuje je na liczbę dni (1 minuta =60 sekund, 1 godzina =60 minut, 1 dzień =24 godziny => 60*60*24 =liczba sekund w dniu). Kiedy dodajesz numer do daty, Oracle uważa, że ​​ta liczba zawiera dni, dlatego potrzebujesz takiej rozmowy.

TO_DATE('01/01/1970 00:00:00', 'MM/DD/YYYY HH24:MI:SS') + (create_date / ( 60 * 60 * 24 )) daje datę zapisaną w create_date, ale w "tradycyjnym" formacie

Wygląda na to, że musisz porównać czas uniksowy z datą. Lepiej byłoby użyć tego warunku:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL do aktualizacji Pomiń zablokowane zapytanie i wielowątkowość Java — jak to naprawić

  2. Używanie wartości sekwencyjnych dla klucza podstawowego w zapytaniu INSERT

  3. Używanie zapytania SQL do określenia, czy tabela istnieje

  4. Importowanie pliku .csv do aplikacji Oracle Forms

  5. Jak sprawdzić NULL lub niepoprawne w zapytaniu HQL?