KWALIFIKACJA INF3 - CZERWIEC 2021

PYTANIE NR 18.
Którego typu danych w bazie MySQL należy użyć, aby przechować w jednym polu datę i czas?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
TIMESTAMP służy do zapisu daty wraz z czasem (rok-miesiąc-dzień oraz godzina-minuta-sekunda) w jednej kolumnie, więc spełnia wymaganie pytania. DATE przechowuje tylko datę, YEAR tylko rok, a BOOLEAN nie jest typem do zapisu daty i czasu.

Pełne wyjaśnienie:

W MySQL, aby przechować w jednym polu zarówno datę, jak i czas (czyli pełny moment zdarzenia), stosuje się typ danych TIMESTAMP. Taka kolumna zapisuje wartości w formacie obejmującym rok, miesiąc, dzień oraz część czasową (godziny, minuty, sekundy), dzięki czemu nadaje się np. do rejestrowania czasu utworzenia rekordu lub czasu wykonania operacji w aplikacji internetowej.

Odpowiedź YEAR jest błędna, ponieważ ten typ przechowuje wyłącznie informację o roku, bez miesiąca, dnia i bez czasu. Nie da się więc zapisać konkretnej daty i godziny, a jedynie bardzo ogólną informację.

Odpowiedź BOOLEAN jest błędna, bo nie służy do przechowywania wartości daty ani czasu. W praktyce w MySQL spotyka się zapis wartości logicznych jako odmianę typów liczbowych (np. 0/1), co nie pozwala kodować rzeczywistej daty i godziny w sposób bezpośredni i czytelny.

Odpowiedź DATE także jest błędna: ten typ przechowuje tylko datę (rok-miesiąc-dzień) bez części czasowej. To dobre rozwiązanie dla dat urodzenia lub daty ważności, ale nie dla "momentu w czasie", gdy potrzebne są także godziny i minuty.

Wskazówka egzaminacyjna: gdy w treści pojawia się wymóg "data i czas w jednym polu", szukaj typu z grupy daty/czasu, który zawiera część czasową. Gdy mowa wyłącznie o dniu (bez godzin), typy takie jak DATE będą wystarczające.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
TIMESTAMP przechowuje datę i czas w jednej kolumnie, czyli pełny moment zdarzenia (np. utworzenie konta, zapis logu). Dzięki temu można łatwo sortować, filtrować i porównywać rekordy według czasu.
DATE zapisuje wyłącznie datę (rok-miesiąc-dzień), bez godzin i minut. TIMESTAMP zapisuje datę razem z czasem, więc nadaje się do zapisu "kiedy dokładnie" coś się wydarzyło.
Typ YEAR zawiera tylko informację o roku, bez miesiąca i dnia, a tym bardziej bez części czasowej. W efekcie nie da się w nim zapisać konkretnego momentu, a jedynie bardzo ogólny przedział czasu.
Nie. BOOLEAN reprezentuje wartość logiczną (prawda/fałsz), a w MySQL jest powiązany z przechowywaniem 0/1. Nie służy do zapisu daty ani czasu i nie pozwala na sensowne porównania "kiedy" coś nastąpiło.
Najczęściej zapisuje się np. czas rejestracji użytkownika, czas ostatniego logowania, moment utworzenia lub modyfikacji wpisu, a także znaczniki czasu w logach. To ułatwia audyt, analizę zdarzeń i sortowanie wyników.
Gdy godzina nie jest istotna, a liczy się tylko dzień. Typowe przykłady to data urodzenia, data ważności dokumentu lub termin (dzień) bez potrzeby rejestrowania konkretnej godziny wykonania operacji.
Najczęściej używa się funkcji zwracającej bieżący czas serwera (np. aktualny znacznik czasu) podczas INSERT. W praktyce robi się to przez domyślną wartość kolumny lub podanie funkcji czasu w zapytaniu.
Typ daty/czasu umożliwia poprawne sortowanie, filtrowanie zakresów, porównania i indeksowanie. Przy tekście łatwo o błędy formatu, a operacje typu "rekordy z ostatnich 7 dni" są trudniejsze i mniej wydajne.
Częsty błąd to wybór DATE tylko dlatego, że słowo "date" kojarzy się z datą, mimo że pytanie wymaga także czasu. Warto zapamiętać: gdy pojawia się "data i czas", potrzebny jest typ z częścią czasową.
Szukaj sformułowań: "dokładny moment", "godzina", "minuta", "sekunda", "czas zdarzenia", "utworzenie rekordu", "log", "historia zmian". To sygnał, że sama data nie wystarczy i potrzebna jest data razem z czasem.
info

Około 76% zdających odpowiada poprawnie na to pytanie. średnio łatwe

W praktyce zawodowej kluczowe jest to, że tIMESTAMP służy do zapisu daty wraz z czasem (rok-miesiąc-dzień oraz godzina-minuta-sekunda) w jednej kolumnie, więc spełnia wymaganie pytania.

Źródła:

  • MySQL 8.0 Reference Manual: Data Types, Date and Time Data Types (TIMESTAMP, DATE, YEAR) – https://dev.mysql.com/doc/refman/8.0/en/date-and-time-types.html (dostęp 2026-03-01)
  • MySQL 8.0 Reference Manual: The TIMESTAMP Type – https://dev.mysql.com/doc/refman/8.0/en/datetime.html (sekcje o TIMESTAMP/DATETIME, dostęp 2026-03-01)
  • MySQL 8.0 Reference Manual: Boolean Literals / BOOLEAN and BOOL – https://dev.mysql.com/doc/refman/8.0/en/boolean-literals.html (dostęp 2026-03-01)

Materiały:

  • Oficjalna dokumentacja MySQL: rozdział o typach danych daty i czasu
  • Ćwiczenia SQL: tworzenie tabel z kolumnami typu TIMESTAMP/DATE/YEAR i wstawianie danych
  • Materiały do INF.3: modelowanie bazy danych dla aplikacji internetowej (logi, rejestracja, historia zmian)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego