sql >> Database >  >> RDS >> Oracle

TZ_OFFSET() Functie in Oracle

In Oracle Database, de TZ_OFFSET() functie retourneert de tijdzone-offset die overeenkomt met het argument op basis van de datum waarop de instructie is uitgevoerd.

Syntaxis

De syntaxis gaat als volgt:

TZ_OFFSET({ 'time_zone_name'
          | '{ + | - } hh : mi'
          | SESSIONTIMEZONE
          | DBTIMEZONE
          }
         )

Voorbeelden

Hier zijn enkele voorbeelden om te demonstreren.

Naam regio tijdzone

U kunt een geldige naam van de tijdzoneregio doorgeven:

SELECT TZ_OFFSET('Australia/Darwin')
FROM DUAL;

Resultaat:

+09:30

Hier leest u hoe u een lijst met ondersteunde tijdzones in uw systeem kunt krijgen.

Tijdzoneverschuiving

U kunt een tijdzone-offset doorgeven, in welk geval deze zichzelf gewoon teruggeeft:

SELECT TZ_OFFSET('-10:00')
FROM DUAL;

Resultaat:

-10:00

De SESSIONTIMEZONE Functie

De SESSIONTIMEZONE functie retourneert de tijdzone van de huidige sessie. U kunt dit gebruiken om de tijdzone-offset van uw huidige sessie te krijgen.

Voorbeeld:

SELECT 
    SESSIONTIMEZONE,
    TZ_OFFSET(SESSIONTIMEZONE)
FROM DUAL;

Resultaat in mijn sessie:

      SESSIONTIMEZONE    TZ_OFFSET(SESSIONTIMEZONE) 
_____________________ _____________________________ 
Australia/Brisbane    +10:00                       

De DBTIMEZONE Functie

De DBTIMEZONE functie retourneert de tijdzone van de database. Dit kan al dan niet hetzelfde zijn als de SESSIONTIMEZONE op uw systeem.

Voorbeeld:

SELECT 
    DBTIMEZONE,
    TZ_OFFSET(DBTIMEZONE)
FROM DUAL;

Resultaat:

   DBTIMEZONE    TZ_OFFSET(DBTIMEZONE) 
_____________ ________________________ 
+00:00        +00:00                  

Nullargumenten

Doorgeven van null resulteert in null :

SET NULL 'null';
SELECT TZ_OFFSET(null)
FROM DUAL;

Resultaat:

null

Standaard retourneren SQLcl en SQL*Plus een spatie wanneer null treedt op als resultaat van een SQL SELECT uitspraak.

U kunt echter SET NULL . gebruiken om een ​​andere tekenreeks op te geven die moet worden geretourneerd. Hier heb ik gespecificeerd dat de string null moet worden geretourneerd.

Ontbrekend argument

Het aanroepen van de functie met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:

SELECT TZ_OFFSET()
FROM DUAL;

Resultaat:

Error starting at line : 1 in command -
SELECT TZ_OFFSET()
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"
*Cause:    
*Action:

  1. SQL Server 2016:een tabel maken op basis van een SQL-script

  2. Hoe voeg ik indexen toe aan MySQL-tabellen?

  3. Zoek uit of een partitie is gecomprimeerd in SQL Server (T-SQL)

  4. Op welke kolom moet de geclusterde index worden geplaatst?