Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Programowanie webowe Bazy danych

Słowa kluczowe: Funkcja NOW() w SQL Funkcje bezargumentowe w SQL

Która z funkcji MySQL zwraca bieżącą datę (bez godziny)?

A.
YEAR()
B.
CURDATE()
C.
UPPER()
D.
LENGTH()
Funkcja CURDATE() w MySQL zwraca bieżącą datę bez części czasowej, czyli sam rok, miesiąc i dzień. Wynik ma zwykle postać RRRR-MM-DD, na przykład 2026-11-08, zależnie od aktualnej daty ustawionej na serwerze bazy danych. To jest ważne, bo CURDATE() nie bierze daty z przeglądarki użytkownika, tylko z systemowego czasu serwera MySQL. W praktyce używa się jej np. przy zapisie daty rejestracji użytkownika, filtrowaniu zamówień z dzisiejszego dnia albo sprawdzaniu, które wpisy mają termin ważności równy dzisiejszej dacie. Przykład: SELECT CURDATE(); zwróci aktualną datę, a zapytanie SELECT * FROM zamowienia WHERE data_zamowienia = CURDATE(); wybierze rekordy z dziś. Moim zdaniem warto od razu zapamiętać różnicę: CURDATE() daje samą datę, NOW() daje datę i godzinę, a CURRENT_DATE jest bardzo podobnym standardowym zapisem. W dobrych praktykach branżowych dobrze jest świadomie wybierać funkcję daty, bo porównywanie pola DATE z wartością zawierającą godzinę potrafi potem robić dziwne błędy w raportach.
W tym pytaniu chodzi konkretnie o funkcję MySQL zwracającą bieżącą datę bez godziny, więc poprawnym wyborem jest CURDATE(). Pozostałe funkcje mogą wyglądać jak zwykłe funkcje SQL, ale rozwiązują zupełnie inne problemy. UPPER() służy do przekształcania tekstu na wielkie litery, na przykład z jan na JAN. Przydaje się przy formatowaniu danych tekstowych albo porównywaniu napisów, ale nie ma żadnego związku z pobieraniem aktualnej daty z serwera bazy danych. LENGTH() zwraca długość napisu w bajtach, co w MySQL bywa istotne szczególnie przy kodowaniu znaków, np. UTF-8. To funkcja tekstowa, nie funkcja daty i czasu. YEAR() też może zmylić, bo faktycznie jest związana z datami, ale ona wyciąga tylko rok z podanej daty, na przykład YEAR('2026-11-08') da 2026. Sama z siebie nie pobiera dzisiejszej daty, tylko oczekuje argumentu. Typowy błąd polega na tym, że ktoś widzi nazwę kojarzącą się z datą i zakłada, że funkcja zwróci aktualną datę. W SQL trzeba patrzeć dokładnie na przeznaczenie funkcji: jedne formatują tekst, inne liczą długość danych, jeszcze inne wyodrębniają fragment daty. Do pobrania dzisiejszej daty bez godziny używa się CURDATE() albo równoważnie CURRENT_DATE. Z mojego doświadczenia najlepiej zapamiętać prostą zasadę: current albo cur przy dacie oznacza bieżącą wartość, a funkcje typu YEAR(), MONTH() i DAY() raczej wydobywają fragment z daty, którą już mamy.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.