SYSDATETIMEOFFSET (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analyticssql database v Microsoft Fabric

Funkce SYSDATETIMEOFFSET Transact-SQL (T-SQL) vrací hodnotu datetimeoffset(7), která obsahuje datum a čas počítače, na kterém běží instance SQL Server. Zahrnuto je i časové pásmo.

Přehled všech Transact-SQL datových typů a funkcí data a času najdete v tématu Datové typy a funkce data a času.

Transact-SQL konvence syntaxe

Syntaxe

SYSDATETIMEOFFSET ( )

Návratové typy

datetimeoffset(7)

Poznámky

Transact-SQL příkazy mohou odkazovat na SYSDATETIMEOFFSET kdekoli, kde mohou odkazovat na výraz datetimeoffset .

SYSDATETIMEOFFSET je nedeterministická funkce. Zobrazení a výrazy, které odkazují na tuto funkci ve sloupci, nelze indexovat.

Poznámka:

SQL Server získává hodnoty data a času pomocí Windows API GetSystemTimeAsFileTime(). Přesnost závisí na hardwaru počítače a verzi Windows, na které je spuštěná instance SQL Serveru. Přesnost tohoto rozhraní API je pevná na 100 nanosekundách. Přesnost lze zjistit pomocí Windows API GetSystemTimeAdjustment().

Examples

Následující příklady používají šest systémových funkcí SYSTÉMU SQL Server, které vracejí aktuální datum a čas k vrácení data, času nebo obojího. Hodnoty jsou vráceny v řadě; proto se jejich zlomkové sekundy můžou lišit.

A. Zobrazení formátů vrácených funkcemi data a času

Následující příklad ukazuje různé formáty, které vrací funkce data a času.

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

Tady je soubor výsledků.

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. Převod data a času na datum

Následující příklad vám ukáže, jak převést hodnoty data a času na date.

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

Tady je soubor výsledků.

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. Převést datum a čas na časy

Následující příklad vám ukáže, jak převést hodnoty data a času na time.

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

Tady je soubor výsledků.

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