Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-databas i Microsoft Fabric
Returnerar den aktuella tidsstämpeln för databassystemet som ett datum-tidsvärde utan databasens tidszonförskjutning. Detta värde härleds från operativsystemet på den dator där instansen av SQL Server 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
GETDATE()
Returtyp
datetime
Anmärkningar
Transact-SQL uttalanden kan hänvisa till GETDATE var som helst de kan hänvisa till ett datumtidsuttryck .
GETDATE är en icke-deterministisk funktion. Vyer och uttryck som refererar till denna funktion i en kolumn kan inte indexeras.
Att använda SWITCHOFFSET med funktionen GETDATE() kan göra att frågan går långsamt eftersom frågeoptimeraren inte kan få exakta kardinalitetsuppskattningar för GETDATE-värdet. Vi rekommenderar att du förberäknar GETDATE-värdet och sedan specificerar det värdet i frågan som visas i följande exempel. Använd dessutom OPTION (REKOMPILE)-frågetipset för att tvinga frågeoptimeraren att kompilera om en frågeplan nästa gång samma fråga körs. Optimeraren kommer då att ha exakta kardinalitetsuppskattningar för GETDATE() och producera en mer effektiv frågeplan.
DECLARE @dt datetimeoffset = switchoffset (CONVERT(datetimeoffset, GETDATE()), '-04:00');
SELECT * FROM t
WHERE c1 > @dt OPTION (RECOMPILE);
Examples
I följande exempel används de sex SQL Server-systemfunktioner som returnerar aktuellt datum och tid för att returnera 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();
Här är resultatet.
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());
Här är resultatet.
SYSDATETIME() 2007-05-03
SYSDATETIMEOFFSET() 2007-05-03
SYSUTCDATETIME() 2007-05-04
CURRENT_TIMESTAMP 2007-05-03
GETDATE() 2007-05-03
GETUTCDATE() 2007-05-04
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());
Här är resultatet.
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)
Följande exempel använder de tre SQL Server-systemfunktionerna som returnerar aktuellt datum och tid för att returnera datum, tid eller båda. Värdena returneras i serie. Därför kan deras bråksekunder vara olika.
D. Att få aktuellt systemdatum och tid
SELECT SYSDATETIME()
,CURRENT_TIMESTAMP
,GETDATE();
E. Att få det aktuella systemdatumet
SELECT CONVERT (date, SYSDATETIME())
,CONVERT (date, CURRENT_TIMESTAMP)
,CONVERT (date, GETDATE());
F. Att få den aktuella systemtiden
SELECT CONVERT (time, SYSDATETIME())
,CONVERT (time, CURRENT_TIMESTAMP)
,CONVERT (time, GETDATE());