SYSDATETIMEOFFSET (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-databas i Microsoft Fabric

Returnerar ett datetimeoffset(7)- värde som innehåller datum och tid för datorn där SQL Server-instansen körs. Tidszonsförskjutningen ingår.

En översikt över alla datatyper och funktioner för datum och tid Transact-SQL finns i Datatyper och funktioner för datum och tid (Transact-SQL).

Transact-SQL syntaxkonventioner

Syntax

SYSDATETIMEOFFSET ( )  

Returtyp

datetimeoffset(7)

Anmärkningar

Transact-SQL satser kan hänvisa till SYSDATETIMEOFFSET var som helst kan de referera till ett datetimeoffset-uttryck .

SYSDATETIMEOFFSET är en icke-deterministisk funktion. Vyer och uttryck som refererar till denna funktion i en kolumn kan inte indexeras.

Anmärkning

SQL Server hämtar datum- och tidvärden genom att använda Windows API:et GetSystemTimeAsFileTime(). Noggrannheten beror på datorns maskinvara och version av Windows som SQL Server-instansen körs på. Precisionen för det här API:et är fast vid 100 nanosekunder. Noggrannheten kan bestämmas genom att använda GetSystemTimeAdjustment() Windows API.

Examples

I följande exempel används de sex SQL Server-systemfunktioner som returnerar aktuellt datum och tid för att returnera datum, tid eller båda. Värdena returneras i serie. Därför kan deras bråksekunder vara olika.

A. Visar formaten som returneras av datum- och tidsfunktionerna

I följande exempel visas de olika format som returneras av datum- och tidsfunktionerna.

SELECT SYSDATETIME() AS [SYSDATETIME()]  
    ,SYSDATETIMEOFFSET() AS [SYSDATETIMEOFFSET()]  
    ,SYSUTCDATETIME() AS [SYSUTCDATETIME()]  
    ,CURRENT_TIMESTAMP AS [CURRENT_TIMESTAMP]  
    ,GETDATE() AS [GETDATE()]  
    ,GETUTCDATE() AS [GETUTCDATE()];  

Här är resultatet.

SYSDATETIME()      2007-04-30 13:10:02.0474381
SYSDATETIMEOFFSET()2007-04-30 13:10:02.0474381 -07:00
SYSUTCDATETIME()   2007-04-30 20:10:02.0474381
CURRENT_TIMESTAMP  2007-04-30 13:10:02.047
GETDATE()          2007-04-30 13:10:02.047
GETUTCDATE()       2007-04-30 20:10:02.047

B. Konverteringsdatum och tid till datum

Följande exempel visar hur du konverterar datum- och tidvärden till date.

SELECT CONVERT (date, SYSDATETIME())  
    ,CONVERT (date, SYSDATETIMEOFFSET())  
    ,CONVERT (date, SYSUTCDATETIME())  
    ,CONVERT (date, CURRENT_TIMESTAMP)  
    ,CONVERT (date, GETDATE())  
    ,CONVERT (date, GETUTCDATE());  

Här är resultatet.

2007-04-30
2007-04-30
2007-04-30
2007-04-30
2007-04-30
2007-04-30

C. Att omvandla datum och tid till tider

Följande exempel visar hur du konverterar datum- och tidvärden till time.

SELECT CONVERT (time, SYSDATETIME()) AS [SYSDATETIME()]  
    ,CONVERT (time, SYSDATETIMEOFFSET()) AS [SYSDATETIMEOFFSET()]  
    ,CONVERT (time, SYSUTCDATETIME()) AS [SYSUTCDATETIME()]  
    ,CONVERT (time, CURRENT_TIMESTAMP) AS [CURRENT_TIMESTAMP]  
    ,CONVERT (time, GETDATE()) AS [GETDATE()]  
    ,CONVERT (time, GETUTCDATE()) AS [GETUTCDATE()];  

Här är resultatet.

SYSDATETIME()      13:18:45.3490361
SYSDATETIMEOFFSET()13:18:45.3490361
SYSUTCDATETIME()   20:18:45.3490361
CURRENT_TIMESTAMP  13:18:45.3470000
GETDATE()          13:18:45.3470000
GETUTCDATE()       20:18:45.3470000

Se även

CAST och CONVERT (Transact-SQL)
Datatyper och funktioner för datum och tid (Transact-SQL)