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

Java Date.toString w Oracle TO_DATE

Oracle DATE typ danych nie ma strefy czasowej - potrzebujesz TIMESTAMP WITH TIMEZONE typ danych:

SELECT TO_TIMESTAMP_TZ(
         'Thu Nov 24 15:20:52 CET 2016',
         'DY MON DD HH24:MI:SS TZR YYYY'
       )
FROM DUAL

Jeśli chcesz przekonwertować na DATE (a region strefy czasowej to zawsze CET ) możesz użyć:

SELECT TO_DATE(
         'Thu Nov 24 15:20:52 CET 2016',
         'DY MON DD HH24:MI:SS "CET" YYYY'
       )
FROM DUAL

Jeśli chcesz to jako DATE typ danych i respektowanie strefy czasowej w oryginalnym ciągu, musisz (1) przekonwertować go na TIMESTAMP WITH TIMEZONE typ danych; (2) przekonwertować tę wartość na znormalizowaną strefę czasową (często używa się do tego czasu UTC); następnie (3) przekonwertuj to na datę:

SELECT CAST(
         TO_TIMESTAMP_TZ(
           'Thu Nov 24 15:20:52 CET 2016',
           'DY MON DD HH24:MI:SS TZR YYYY'
         )
         AT TIME ZONE 'UTC'
         AS DATE
       )
FROM   DUAL;

Który zwróci datę 2016-11-24 14:20:52 (reprezentacja UTC daty wejścia).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Korzystanie z Oracle i PHP:Działa w SQL Developer, ale wyniki pliku PHP ORA-00900:Nieprawidłowa instrukcja

  2. Oracle PL/SQL:Jak wykonać DEREF z RÓŻNICY REF?

  3. PL/SQL:Błąd PLS-00306:nieprawidłowa liczba lub typy argumentów w wywołaniu wywołanym dla tabeli liczb

  4. sqlldr.exe nie działa w systemie Windows 10

  5. Jak usunąć pliki dziennika archiwum z instancji AWS RDS Oracle?