sql >> Databasteknik >  >> RDS >> Oracle

Oracle:Hämta av TZNAME Är det möjligt?

Vi kan extrahera TIMEZONE_REGION från en tidsstämpel, förutsatt att den är en TIMESTAMP MED TIMEZONE. Som så:

SQL> select extract(timezone_region from current_timestamp)
  2  from dual
  3  /

EXTRACT(TIMEZONE_REGIONFROMCURRENT_TIMESTAMP)
----------------------------------------------------------------
CET

SQL>  alter session set time_zone='UTC';

Session altered.

SQL> select extract(timezone_region from current_timestamp)
  2  from dual
  3  /

EXTRACT(TIMEZONE_REGIONFROMCURRENT_TIMESTAMP)
----------------------------------------------------------------
UTC

SQL> alter session set time_zone='-04:00';

Session altered.

SQL> select extract(timezone_region from current_timestamp)
  2  from dual
  3  /

EXTRACT(TIMEZONE_REGIONFROMCURRENT_TIMESTAMP)
----------------------------------------------------------------
UNKNOWN

SQL> 

Det sista resultatet returnerar OKÄNT eftersom mer än ett tidszonnamn mappas till en förskjutning på minus fyra timmar. Det finns olika sätt att ställa in tidszonens namn på sessionsnivå; en av dessa är sannolikt det bästa sättet att lösa problemet. Läs mer .




  1. Hur får jag textinnehåll från BLOB i Oracle SQL

  2. Kolumndefinitionen är inkompatibel med klustrad kolumndefinition

  3. När ska man använda MongoDB

  4. Symfony2 Doctrine PDO MySQL-anslutning med LOAD DATA LOCAL INFILE