Metody pobierania daty i czasu w SQL Server

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';

image

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'

image

One thought on “Metody pobierania daty i czasu w SQL Server”

Leave a Reply

Your email address will not be published.