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

Konverter TimeStamp i TZ-strengformat til TimeStamp i Oracle

Formentlig forvirrer de faste T og Z dig en smule, da de ikke er normale dato-tidsformatmodel elementer. Men dokumentationen siger:

Så du omslutter T og Z i dobbelte anførselstegn, som "T" og "Z" , i din formatmodel.

Hvis du ikke er interesseret i tidszonen, kan du bruge den to_timestamp() funktion :

to_timestamp('2015-03-24T07:08:24.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"')

Eller hvis du vil have med tidszonen, kan du bruge den to_timestamp_tz() funktion , som som standard vil være din aktuelle sessionstidszone (da du faktisk ikke angiver en her, fortolkes Z'et ikke som Zulu/UTC):

to_timestamp_tz('2015-03-24T07:08:24.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"')

Hvis du vil have det med en tidszone og vil angive, at det er UTC, kan du tvinge det til med den from_tz() funktion :

from_tz(to_timestamp('2015-03-24T07:08:24.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"')), 'UTC')

For at se forskellen, som de producerer, skal du angive en tidszone for sessionen som en demo:

alter session set time_zone = 'America/New_York';

select to_timestamp('2015-03-24T07:08:24.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"') as no_tz,
  to_timestamp_tz('2015-03-24T07:08:24.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"') as default_tz,
  from_tz(to_timestamp('2015-03-24T07:08:24.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"'), 'UTC') as utc_tz
from dual;

NO_TZ
--------------------------------------------------
DEFAULT_TZ
--------------------------------------------------
UTC_TZ
--------------------------------------------------
24-MAR-15 07.08.24.000000000                       
24-MAR-15 07.08.24.000000000 AMERICA/NEW_YORK      
24-MAR-15 07.08.24.000000000 UTC                  

Jeg antager, at Z er fast, og de værdier, du får, repræsenterer derfor altid UTC; hvis du faktisk får forskellige tidszoner i de værdier, du skal konvertere, bliver du nødt til at udtrække og anvende dem - hvilket er muligt, men svært og ikke værd at gå ind i, medmindre du rent faktisk har den situation.




  1. Få adgang til Oracle Apex fra fjernmaskine

  2. Hvordan aktiverer jeg MSDTC på SQL Server?

  3. Er det hurtigere at konvertere til varchar eller varchar til int, når man sammenligner i MySQL?

  4. MySQL + Code First + Lazy Load problem!