SYSDATETIME (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-databas i Microsoft Fabric

Returnerar ett datetime2(7)- värde som innehåller datum och tid för den dator där SQL Server-instansen körs.

Anmärkning

SYSDATETIME och SYSUTCDATETIME har mer bråkdels sekundprecision än GETDATE och GETUTCDATE. SYSDATETIMEOFFSET inkluderar systemets tidszonsförskjutning. SYSDATETIME, SYSUTCDATETIME och SYSDATETIMEOFFSET kan tilldelas en variabel av någon av datum- och tidstyperna.

Azure SQL Database (med undantag för Azure SQL Managed Instance) och Azure Synapse Analytics följer UTC. Använd AT TIME ZONE i Azure SQL Database eller Azure Synapse Analytics om du behöver tolka datum- och tidsinformation i en icke-UTC-tidszon.

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

Transact-SQL syntaxkonventioner

Syntax

SYSDATETIME ( )  

Returtyp

datetime2(7)

Anmärkningar

Transact-SQL uttalanden kan hänvisa till SYSDATETIME var som helst kan de referera till ett datetime2(7)- uttryck.

SYSDATETIME är en icke-deterministisk funktion. Vyer och uttryck som refererar till denna funktion 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

Följande exempel använder de sex SQL Server-systemfunktionerna som returnerar aktuellt datum och tid för att återge datum, tid eller båda. Värdena returneras i serie. Därför kan deras bråksekunder vara olika.

A. Att få aktuellt systemdatum och tid

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. Att få det aktuella systemdatumet

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. Att få den aktuella systemtiden

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  
*/  

Exempel: Azure Synapse Analytics and Analytics Platform System (PDW)

D: Att få aktuellt systemdatum och tid

SELECT SYSDATETIME();  

Här är resultatet.

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

Se även

CAST och CONVERT (Transact-SQL)
Datatyper och funktioner för datum och tid (Transact-SQL)