Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

Funkcja GETDATE

Termin Definicja
Funkcja GETDATE

Funkcja GETDATE zwraca bieżącą datę i czas systemowy serwera.

Do czego służy funkcja GETDATE

GETDATE należy do dialektu Transact-SQL używanego w Microsoft SQL Server i zwraca znacznik czasu odczytany z zegara komputera, na którym pracuje instancja bazy danych. Zwracana wartość ma typ datetime i obejmuje datę razem z godziną, minutą, sekundą i ułamkiem sekundy. Istotne jest, że jest to czas serwera, a nie stacji roboczej użytkownika — jeśli aplikacja działa w Warszawie, a baza stoi na maszynie ustawionej na inną strefę, zapisane daty będą się rozjeżdżać z oczekiwaniami.

Typowe zastosowania i funkcje pokrewne

Najczęściej używa się jej jako wartości domyślnej kolumny rejestrującej moment utworzenia wiersza, w warunkach filtrujących rekordy z ostatnich dni oraz w zapytaniach wyliczających różnice czasu razem z funkcją DATEDIFF. W tym samym silniku dostępne są warianty o innym zachowaniu: GETUTCDATE zwraca czas uniwersalny, SYSDATETIME oddaje wynik w typie datetime2 o wyższej dokładności, a SYSDATETIMEOFFSET dokłada informację o przesunięciu strefy. W innych systemach odpowiedniki nazywają się inaczej — w MySQL jest to NOW, w PostgreSQL między innymi current_timestamp — dlatego przenoszenie zapytań między silnikami wymaga podmiany tych wywołań.

Na czym najczęściej wykłada się to rozwiązanie

Pierwsza pułapka to precyzja: typ datetime nie przechowuje dowolnie drobnych ułamków sekundy, więc dwa zapisy wykonane niemal jednocześnie mogą otrzymać identyczny znacznik, co psuje sortowanie po czasie. Druga to porównywanie kolumny daty z wynikiem GETDATE bez odcięcia części godzinowej — warunek na równość praktycznie nigdy nie zadziała, bo godzina niemal na pewno się różni. Trzecia to zmiana czasu na letni i zimowy, przez którą zapisy oparte na czasie lokalnym tworzą godzinę powtórzoną i godzinę nieistniejącą; przy danych rozliczeniowych bezpieczniej jest przechowywać czas uniwersalny. Osobnym źródłem chaosu jest rozjechany zegar systemowy serwera, na przykład po wyczerpaniu baterii podtrzymującej na płycie głównej.

Kiedy warto zajrzeć do sprzętu, a nie do zapytania

Jeśli daty w bazie są niedorzeczne albo cofają się po każdym restarcie, problem zwykle nie leży w kodzie, lecz w komputerze pełniącym rolę serwera. Warszawskie Pogotowie Komputerowe diagnozuje takie maszyny u klientów firmowych — wymieniamy baterię płyty głównej, sprawdzamy synchronizację czasu, kondycję dysków i stabilność zasilania. Działamy przez całą dobę, siedem dni w tygodniu, bo serwer bazy danych rzadko da się wyłączyć w godzinach pracy.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę