sql >> Databáze >  >> RDS >> Oracle

Oracle:Načíst pomocí TZNAME Je to možné?

Můžeme extrahovat TIMEZONE_REGION z časového razítka a poskytnout jeho TIMEZONE_REGION S TIMEZONE. Asi takhle:

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> 

Poslední výsledek vrátí NEZNÁMÝ, protože více než jeden název časového pásma mapuje posun mínus čtyři hodiny. Existují různé způsoby, jak nastavit název časového pásma na úrovni relace; jeden z nich bude pravděpodobně nejlepší způsob, jak tento problém vyřešit. Další informace .




  1. Podpora dBase je zpět v aplikaci Microsoft Access!

  2. Jak vyplnit řádky na základě dat typu události

  3. SQL dotaz na rownum

  4. Vrácení 'tabulky' (bez předdefinovaných názvů sloupců) z funkce PL/SQL