Jaki typ danych w MySQL należy zastosować, aby w polu zapisać wyłącznie godzinę, bez daty?
A. BOOLEAN
B. DATE
C. TIME
D. YEAR
Typ TIME jest właściwy, gdy w kolumnie MySQL chcesz przechowywać samą godzinę albo czas trwania, bez informacji o dacie. To ważne rozróżnienie, bo baza danych powinna trzymać dane w możliwie najbardziej pasującym typie, a nie na siłę jako tekst czy pełną datę. TIME zapisuje wartości w formacie zbliżonym do HH:MM:SS, na przykład 08:30:00 jako godzina rozpoczęcia lekcji, 17:15:00 jako godzina zamknięcia sklepu albo 02:45:00 jako czas trwania jakiejś operacji. Z mojego doświadczenia to jest bardzo praktyczne przy grafikach pracy, planach zajęć, rezerwacjach, logach systemowych dotyczących czasu wykonania zadania czy harmonogramach. Dobra praktyka projektowania baz danych mówi, żeby używać typu semantycznie zgodnego z przechowywaną wartością. Jeśli potrzebujesz tylko godziny, TIME będzie czytelniejszy i bezpieczniejszy niż DATE albo VARCHAR. Dzięki temu łatwiej później sortować, porównywać i filtrować dane, na przykład wyszukać rekordy po godzinie większej niż 12:00:00.
W tym pytaniu łatwo pomylić typy daty i czasu, bo w codziennym języku często wrzucamy to do jednego worka: data, godzina, termin, czas. W MySQL te pojęcia są jednak rozdzielone i to ma konkretne znaczenie przy projektowaniu tabel. DATE służy do zapisania samej daty, czyli roku, miesiąca i dnia, na przykład 2026-04-15. Nie przechowuje godziny, więc nie nadaje się do pola typu godzina rozpoczęcia zajęć czy godzina wizyty. YEAR jest jeszcze węższy, bo zapisuje tylko rok, na przykład 2026. Ten typ bywa używany przy roku produkcji, roku wydania albo prostych zestawieniach rocznych, ale z godziną nie ma nic wspólnego. BOOLEAN też nie pasuje, ponieważ reprezentuje wartość logiczną, czyli prawda/fałsz. W MySQL często jest traktowany jako TINYINT(1), ale nadal jego sens jest zupełnie inny: czy konto jest aktywne, czy użytkownik zaakceptował regulamin, czy produkt jest dostępny. Typowy błąd myślowy polega na tym, że ktoś widzi słowo związane z czasem, na przykład DATE lub YEAR, i uznaje, że każdy taki typ może przechować godzinę. No nie bardzo. W relacyjnych bazach danych dobór typu kolumny wpływa na poprawność danych, wydajność zapytań i późniejszą czytelność projektu. Jeśli pole ma zawierać wyłącznie godzinę, najbardziej naturalnym i zgodnym z przeznaczeniem wyborem jest TIME.