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

Java Date.toString i Oracles TO_DATE

En Oracle DATE datatypen har ikke en tidszone - du skal bruge et TIMESTAMP WITH TIMEZONE datatype:

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

Hvis du vil konvertere til en DATE (og tidszoneområdet er altid CET ), så kan du bruge:

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

Hvis du vil have det som en DATE datatype og for at respektere tidszonen i den originale streng, skal du (1) konvertere den til et TIMESTAMP WITH TIMEZONE datatype; (2) konverter denne værdi til en standardiseret tidszone (UTC bruges ofte til dette); derefter (3) konverter det til en dato:

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;

Som udsender datoen 2016-11-24 14:20:52 (UTC-repræsentationen af ​​inputdatoen).



  1. Oracle 11G - Ydelseseffekt af indeksering ved indsættelse

  2. Indsættelse af analytiske data fra Spark til Postgres

  3. Hvordan bruger jeg kaskadesletning med SQL Server?

  4. Hvordan ville jeg implementere en simpel webstedssøgning med php og mySQL?