Sdílet prostřednictvím


SYSDATETIME (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Koncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric

Vrací hodnotu datetime2(7), která obsahuje datum a čas počítače, na kterém běží instance SQL Serveru.

Poznámka:

SYSDATETIME a SYSUTCDATETIME mají větší přesnost zlomků sekund než GETDATE a GETUTCDATE. SYSDATETIMEOFFSET zahrnuje posun systémového časového pásma. SYSDATETIME, SYSUTCDATETIME a SYSDATETIMEOFFSET lze přiřadit proměnné libovolného typu data a času.

Azure SQL Database (s výjimkou Azure SQL Managed Instance) a Azure Synapse Analytics následují UTC. Použijte AT TIME ZONE v Azure SQL Database nebo Azure Synapse Analytics, pokud potřebujete interpretovat informace o datu a čase v ne-UTC časovém pásmu.

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

SYSDATETIME ( )  

Návratový typ

datetime2(7)

Poznámky

Transact-SQL příkazy mohou odkazovat na SYSDATETIME kdekoliv, kde mohou odkazovat na výraz datetime2(7).

SYSDATETIME 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 využívají šest systémových funkcí SQL Serveru, které vracejí aktuální datum a čas a vracejí datum, čas nebo obojí. Hodnoty jsou vráceny v řadě; proto se jejich zlomkové sekundy můžou lišit.

A. Získání aktuálního data a času systému

SELECT SYSDATETIME()  
    ,SYSDATETIMEOFFSET()  
    ,SYSUTCDATETIME()  
    ,CURRENT_TIMESTAMP  
    ,GETDATE()  
    ,GETUTCDATE();  
/* Returned:  
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. Získání aktuálního systému data

SELECT CONVERT (date, SYSDATETIME())  
    ,CONVERT (date, SYSDATETIMEOFFSET())  
    ,CONVERT (date, SYSUTCDATETIME())  
    ,CONVERT (date, CURRENT_TIMESTAMP)  
    ,CONVERT (date, GETDATE())  
    ,CONVERT (date, GETUTCDATE());  
  
/* All returned 2007-04-30 */  

C. Získání aktuálního systémového času

SELECT CONVERT (time, SYSDATETIME())  
    ,CONVERT (time, SYSDATETIMEOFFSET())  
    ,CONVERT (time, SYSUTCDATETIME())  
    ,CONVERT (time, CURRENT_TIMESTAMP)  
    ,CONVERT (time, GETDATE())  
    ,CONVERT (time, GETUTCDATE());  
  
/* Returned  
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  
*/  

Příklady: Azure Synapse Analytics a Analytický platformový systém (PDW)

D: Získání aktuálního systému data a času

SELECT SYSDATETIME();  

Tady je soubor výsledků.

--------------------------  
7/20/2013 2:49:59 PM

Viz také

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