Silnik Sql Server posiada kilka metod do pobierania daty i czasu. Część z nich jest już przestarzała i nie powinno się z nich korzystać. SQL Server 2008 wprowadził kilka dodatkowych funkcji: SYSDATETIME, SYSDATETIMEOFFSET, SYSUTCDATETIME. Wszystkie one pobierają czas z dokładnością do 100 nanosekund. Aby przekonać się co dokładnie zwracają najlepiej wywołać je:
select SYSDATETIME() as 'SYSDATETIME',SYSDATETIMEOFFSET() 'SYSDATETIMEOFFSET', SYSUTCDATETIME() as 'SYSUTCDATETIME';
Jak widać SYSDATETIEM zwraca po prostu systemowy czas (z dokładnością do 100 nanosekund). Z kolei SYSDATETIMEOFFSET oprócz czasu zwraca również przesunięcie strefy czasowej (w tym przypadku +2). Z kolei SYSUTCDATIME zwraca czas w systemie UTC.
Jeśli nie potrzebna jest nam aż tak wysoka dokładność lepiej skorzystać z funkcji GETDATE, GETDATEUTC lub CURRENT_TIMESTAMP. GETDATE i CURRENT_TIMESTAMP działają identycznie, różnią się wyłącznie nazwą oraz sposobem wywołania:
select GETDATE() as 'GETDATE',GETUTCDATE() as 'GETDATEUTC',CURRENT_TIMESTAMP as 'CURRENT_TIMESTAMP'
CURRENT_TIMESTAMP jest zgodny ze standardem ANSI SQL, GETDATE() nie. Taka jest różnica.