sql >> Database teknologi >  >> RDS >> Sqlserver

SYSDATETIMEOFFSET() Eksempler i SQL Server (T-SQL)

I SQL Server, transact-sql SYSDATETIMEOFFSET() funktion returnerer en datetimeoffset(7) værdi, der indeholder datoen og klokkeslættet for den computer, hvor forekomsten af ​​SQL Server kører. Denne værdi inkluderer tidszoneforskydningen.

Eksempler på brug nedenfor.

Syntaks

Syntaksen ser sådan ud:

SYSDATETIMEOFFSET ( )

Så du kalder simpelthen funktionen uden nogen argumenter.

Eksempel

Her er et grundlæggende eksempel:

SELECT SYSDATETIMEOFFSET() AS Result;

Resultat:

Result
----------------------------------
2018-06-17 09:55:27.3221853 +10:00

Udtrækning af tidszoneforskydningen

Du kan bruge DATEPART() funktion for at returnere tidszoneforskydningen. Denne funktion returnerer et heltal, der repræsenterer tidszoneforskydningen i minutter.

Eksempel:

SELECT 
    SYSDATETIMEOFFSET() AS 'Date/time',
    DATEPART(TZoffset, SYSDATETIMEOFFSET()) AS 'TZ Offset';

Resultat:

Date/time                             TZ Offset
----------------------------------    -----------
2018-06-17 10:04:23.2316409 +10:00    600

Du kan også bruge FORMAT()-funktionen til at returnere tidszoneforskydningen som en streng. Specifikt kan du bruge z , zz og/eller zzz argumenter for at returnere det i det krævede format.

Eksempel:

SELECT 
    SYSDATETIMEOFFSET() AS 'Date/time',
    FORMAT(SYSDATETIMEOFFSET(), 'zz') AS 'zz',
    FORMAT(SYSDATETIMEOFFSET(), 'zzz') AS 'zzz';

Resultat:

Date/time                             zz                zzz
----------------------------------    --------------    --------------
2018-06-17 10:27:33.7314840 +10:00    +10               +10:00

Konvertering af returværdien

Du kan også bruge funktioner såsom CONVERT() at konvertere returværdien til en anden datatype. Her er et eksempel, hvor jeg konverterer det til en dato værdi og en tid værdi:

SELECT 
    CONVERT (date, SYSDATETIMEOFFSET()) AS 'Date',
    CONVERT (time, SYSDATETIMEOFFSET()) AS 'Time';

Resultat:

Date          Time
----------    ----------------
2018-06-17    10:08:29.6377947

Når vi først gør det, mister vi naturligvis tidszoneforskydningen.

Se også TODATETIMEOFFSET() som giver dig mulighed for at få en datetime offset værdi fra en datetime2 udtryk og SWITCHOFFSET() som giver dig mulighed for at ændre en tidszoneforskydning.


  1. Annoncering af ClusterControl 1.7.4:Klynge-til-klynge-replikering - Ultimativ gendannelse af katastrofer

  2. MySQL-funktion til at finde antallet af arbejdsdage mellem to datoer

  3. Indsæt et tidsstempel i databasen via ContentValues

  4. Hvilken kolonne skal det klyngede indeks sættes på?