Probleem:
U wilt de huidige datum en tijd in T-SQL zien, maar u wilt niet dat de tijdzone wordt verschoven.
Oplossing:
We gebruiken GETDATE(), CURRENT_TIMESTAMP en SYSDATETIME() om de huidige datum en tijd te krijgen zonder de tijdzoneverschuiving. Met de eerste twee functies kunnen we de huidige tijd met een lagere precisie krijgen. (GETDATE() is een T-SQL-functie, terwijl CURRENT_TIMESTAMP een SQL Standard-functie is; beide functies retourneren hetzelfde gegevenstype). De derde functie, SYSDATETIME(), krijgt een tijd met een hogere precisie.
SELECT CURRENT_TIMESTAMP ;
Dit is het resultaat van de zoekopdracht:
2019-08-14 10:01:06.983
Discussie:
In een SQL Server-database is de CURRENT_TIMESTAMP
functie retourneert de huidige datum en tijd (d.w.z. de tijd op de machine waarop die SQL Server-instantie wordt uitgevoerd) als een datetime
data type. Datetime
is een tijd met een lagere precisie die maximaal drie fracties van seconden heeft. (In ons voorbeeld is dit 983.)
GETDATE() is vergelijkbaar met de CURRENT_TIMESTAMP
en geeft hetzelfde resultaat. Het verschil is dat CURRENT_TIMESTAMP
is SQL-standaard, terwijl GETDATE() specifiek is voor SQL Server.
SELECT GETDATE() ;
Als u een nauwkeurigere huidige datum en tijd wilt krijgen zonder tijdzoneverschuiving, kunt u natuurlijk de functie SYSDATETIME() gebruiken. Deze functie retourneert een datetime2
gegevenstype met zeven fractionele seconden. Bekijk het onderstaande voorbeeld:
SELECT SYSDATETIME() ;
Dit is het resultaat:
2019-08-14 10:01:06.9754163