SYSDATETIMEOFFSET (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL database w usłudze Microsoft Fabric

Funkcja SYSDATETIMEOFFSET Transact-SQL (T-SQL) zwraca wartość datetimeoffset(7), która zawiera datę i godzinę komputera, na którym działa instancja SQL Server. Uwzględniono przesunięcie strefy czasowej.

Aby zapoznać się z omówieniem wszystkich Transact-SQL typów i funkcji danych daty i godziny, zobacz Typy i funkcje danych daty i godziny.

Transact-SQL konwencje składni

Składnia

SYSDATETIMEOFFSET ( )

Typy zwracane

datetimeoffset(7)

Uwagi

Transact-SQL instrukcje mogą odnosić się do SYSDATETIMEOFFSET wszędzie – mogą odnosić się do wyrażenia datetimeoffset .

SYSDATETIMEOFFSET jest funkcją niedeterministyczną. Nie można indeksować widoków i wyrażeń odwołujących się do tej funkcji w kolumnie.

Uwaga / Notatka

SQL Server uzyskuje wartości daty i czasu za pomocą API Windows GetSystemTimeAsFileTime(). Dokładność zależy od sprzętu komputera i wersji systemu Windows, na którym działa wystąpienie programu SQL Server. Precyzja tego interfejsu API jest stała na poziomie 100 nanosekund. Dokładność można określić, korzystając z API Windows GetSystemTimeAdjustment().

Przykłady

W poniższych przykładach użyto sześciu funkcji systemowych programu SQL Server, które zwracają bieżącą datę i godzinę, aby zwrócić datę, godzinę lub obie te funkcje. Wartości są zwracane w serii; w związku z tym ich ułamkowe sekundy mogą być inne.

A. Pokaż formaty zwracane przez funkcje daty i godziny

W poniższym przykładzie przedstawiono różne formaty zwracane przez funkcje daty i godziny.

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

Oto zestaw wyników.

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. Konwertowanie daty i godziny na datę

Poniższy przykład pokazuje, jak przeliczyć wartości daty i czasu na date.

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

Oto zestaw wyników.

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. Przelicz datę i czas na czasy

Poniższy przykład pokazuje, jak przeliczyć wartości daty i czasu na time.

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

Oto zestaw wyników.

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