SYSDATETIMEOFFSET (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL-databas i Microsoft Fabric

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

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

Transact-SQL syntaxkonventioner

Syntax

SYSDATETIMEOFFSET ( )

Returtyper

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 den här funktionen 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. Visa de format som returneras av datum- och tidsfunktionerna

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

SELECT SYSDATETIME(),
       SYSDATETIMEOFFSET(),
       SYSUTCDATETIME(),
       CURRENT_TIMESTAMP,
       GETDATE(),
       GETUTCDATE(),
       CURRENT_DATE;

Här är resultatet.

SYSDATETIME()        2026-09-01 16:15:37.7418724
SYSDATETIMEOFFSET()  2026-09-01 16:15:37.7418724 -06:00
SYSUTCDATETIME()     2026-09-01 22:15:37.7418724
CURRENT_TIMESTAMP    2026-09-01 16:15:37.740
GETDATE()            2026-09-01 16:15:37.740
GETUTCDATE()         2026-09-01 22:15:37.740
CURRENT_DATE         2026-09-01

B. Konvertera datum 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()),
       CURRENT_DATE;

Här är resultatet.

SYSDATETIME()        2026-09-01
SYSDATETIMEOFFSET()  2026-09-01
SYSUTCDATETIME()     2026-09-01
CURRENT_TIMESTAMP    2026-09-01
GETDATE()            2026-09-01
GETUTCDATE()         2026-09-01
CURRENT_DATE         2026-09-01

C. Konvertera datum och tid till tider

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

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

Här är resultatet.

SYSDATETIME()        16:15:37.7418724
SYSDATETIMEOFFSET()  16:15:37.7418724
SYSUTCDATETIME()     22:15:37.7418724
CURRENT_TIMESTAMP    16:15:37.740
GETDATE()            16:15:37.740
GETUTCDATE()         22:15:37.740