Sdílet prostřednictvím


SYSDATETIMEOFFSET (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)databáze SQL v Microsoft Fabric

Vrací hodnotu datetimeoffset(7), která obsahuje datum a čas počítače, na kterém běží instance SQL Serveru. Zahrnuto je i časové pásmo.

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

Transact-SQL konvence syntaxe

Syntaxe

SYSDATETIMEOFFSET ( )  

Návratový typ

datetimeoffset(7)

Poznámky

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

SYSDATETIMEOFFSET je nedeterministická funkce. Pohledy a výrazy, které tuto funkci odkazují 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ů, které jsou vráceny funkcemi data a času

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

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

Tady je soubor výsledků.

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. Převod data a času od začátku

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());  

Tady je soubor výsledků.

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

C. Převod data a času 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()) 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()];  

Tady je soubor výsledků.

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

Viz také

CAST a CONVERT (Transact-SQL)
Datové a časové typy a funkce (Transact-SQL)