Delen via


GETDATE (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric

Geeft de huidige databasesysteem-tijdstempel terug als een datum-tijdwaarde zonder de tijdzone-verschuiving van de database. Deze waarde is afgeleid van het besturingssysteem van de computer waarop de instantie van SQL Server draait.

Opmerking

SYSDATETIME en SYSUTCDATETIME hebben een hogere precisie in fracties van seconden dan GETDATE en GETUTCDATE. SYSDATETIMEOFFSET omvat de systeemtijdzone-offset. SYSDATETIME, SYSUTCDATETIME en SYSDATETIMEOFFSET kunnen worden toegewezen aan een variabele van elk van de datum- en tijdtypes.

Azure SQL Database (met uitzondering van Azure SQL Managed Instance) en Azure Synapse Analytics volgen op UTC. Gebruik AT TIME ZONE in Azure SQL Database of Azure Synapse Analytics als je datum- en tijdinformatie wilt interpreteren in een niet-UTC tijdzone.

Zie datum- en tijdgegevenstypen en -functies (Transact-SQL)voor een overzicht van alle Transact-SQL datum- en tijdgegevenstypen en -functies.

Transact-SQL syntaxis-conventies

Syntaxis

GETDATE()

Retourtype

datetime

Opmerkingen

Transact-SQL statements kunnen overal naar GETDATE verwijzen, ze kunnen verwijzen naar een datetime-expressie .

GETDATE is een niet-deterministische functie. Views en expressies die naar deze functie in een kolom verwijzen, kunnen niet worden geïndexeerd.

Het gebruik van SWITCHOFFSET met de functie GETDATE() kan ervoor zorgen dat de query langzaam loopt omdat de queryoptimizer geen nauwkeurige cardinaliteitsschattingen voor de GETDATE-waarde kan verkrijgen. We raden aan om de GETDATE-waarde vooraf te berekenen en die waarde vervolgens in de query te specificeren zoals in het volgende voorbeeld te zien. Gebruik daarnaast de OPTION (RECOMPILE) queryhint om de queryoptimizer te dwingen een queryplan opnieuw te compileren bij de volgende uitvoering van dezelfde query. De optimizer zal dan nauwkeurige cardinaliteitsschattingen voor GETDATE() hebben en een efficiënter queryplan produceren.

DECLARE @dt datetimeoffset = switchoffset (CONVERT(datetimeoffset, GETDATE()), '-04:00');
SELECT * FROM t
WHERE c1 > @dt OPTION (RECOMPILE);

Voorbeelden

In de volgende voorbeelden worden de zes SQL Server-systeemfuncties gebruikt die de huidige datum en tijd retourneren om de datum, tijd of beide te retourneren. De waarden worden geretourneerd in reeksen; daarom kunnen de fractionele seconden anders zijn.

Eén. Het verkrijgen van de huidige systeemdatum en -tijd

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

Hier is het resultatenoverzicht.

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. Het huidige systeemdatum verkrijgen

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

Hier is het resultatenoverzicht.

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. De huidige systeemtijd krijgen

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

Hier is het resultatenoverzicht.

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

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

De volgende voorbeelden gebruiken de drie SQL Server-systeemfuncties die de huidige datum en tijd teruggeven om de datum, tijd of beide terug te geven. De waarden worden geretourneerd in reeksen; daarom kunnen de fractionele seconden anders zijn.

D. Het verkrijgen van de huidige systeemdatum en -tijd

SELECT SYSDATETIME()
    ,CURRENT_TIMESTAMP
    ,GETDATE();

E. Het huidige systeemdatum verkrijgen

SELECT CONVERT (date, SYSDATETIME())
    ,CONVERT (date, CURRENT_TIMESTAMP)
    ,CONVERT (date, GETDATE());

F. De huidige systeemtijd krijgen

SELECT CONVERT (time, SYSDATETIME())
    ,CONVERT (time, CURRENT_TIMESTAMP)
    ,CONVERT (time, GETDATE());

Zie ook

CAST en CONVERTEREN (Transact-SQL)