Łapka LogoŁapka Infa
🛠️
Bazy Danych

Funkcje Wbudowane: Daty i Tekst

Jak wyciągnąć samego miesiąca z daty? Jak skleić imię i nazwisko w jedną kolumnę? Zobacz gotowe rozwiązania.

Potężne Funkcje Wbudowane (Daty i Stringi)

Bazy danych potrafią nie tylko przechowywać suche dane, ale też je inteligentnie przetwarzać "w locie". Na maturze z informatyki bardzo często twórcy sprawdzają, czy umiesz modyfikować daty lub obrabiać teksty bezpośrednio w zapytaniu SQL.

1. Magia Dat (YEAR, MONTH, DAY)

Częste zadanie na maturze: "Wypisz rezerwacje, które odbyły się w maju 2018 roku". Zamiast bawić się w LIKE '2018-05-%' (co jest bardzo złym nawykiem), używamy funkcji wyciągających konkretny element z kolumny daty!

SELECT ID_Rezerwacji, Data
FROM Rezerwacje
WHERE YEAR(Data) = 2018 AND MONTH(Data) = 5;
🗄️

Interaktywna Konsola: Filtrowanie po dacie (YEAR, MONTH)

Wybierz zamówienia złożone w marcu 2026 roku z tabeli 'zamowienia' i posortuj je malejąco po wartości.

Symbole:

Przydatne funkcje:

  • YEAR(data) - wyciąga sam rok
  • MONTH(data) - wyciąga miesiąc (np. 5)
  • DAY(data) - wyciąga dzień z daty
  • CURDATE() / NOW() - zwraca dzisiejszą datę (lub datę z godziną) prosto z zegara serwera.

2. Zabawy Tekstem (CONCAT, SUBSTRING)

CONCAT to chyba najbardziej użyteczna funkcja tekstowa. Służy do "sklejania" (konkatenacji) kilku kolumn lub słów w jedną wielką kolumnę.

Wyobraź sobie, że w bazie masz osobno Imie i Nazwisko, a na stronie internetowej chcesz wyświetlić po prostu pole "Klient".

SELECT CONCAT(Imie, ' ', Nazwisko) AS Klient
FROM Uczniowie;

Zauważ, że w środku dodałem spację w cudzysłowie ' '! Bez niej wyszłoby JanKowalski.

SUBSTRING służy do obcinania tekstu. Np. chcesz wyciągnąć pierwsze 3 litery nazwiska:

-- Zaczynamy od znaku nr 1, wycinamy 3 znaki
SELECT SUBSTRING(Nazwisko, 1, 3) 
FROM Uczniowie;

3. Matematyka i Okrąglanie (ROUND)

Kiedy operujesz na pieniądzach lub wyciągasz średnią przez AVG(), wynik potrafi mieć milion miejsc po przecinku (np. 14.533333333).

Z pomocą przychodzi funkcja ROUND(liczba, miejsca_po_przecinku). Możesz użyć jej wokół funkcji agregującej!

SELECT Klasa, ROUND(AVG(Oceny), 2) AS Srednia_Klasy
FROM Oceny
GROUP BY Klasa;

Powyższy kod policzy średnią i ładnie utnie ją do 2 miejsc po przecinku (np. 4.53).

[!TIP] Dla dociekliwych: Różnica między MS Access a MySQL w Datach W systemie MS Access funkcje od dat nazywają się po polsku lub nieco inaczej (szczególnie w polskim pakiecie Office!). Na przykład zamiast YEAR() możesz czasem spotkać Rok(), a złączenie tekstu w Accessie można wykonać po prostu łącząc kolumny ampersandem: [Imie] & " " & [Nazwisko]. Warto mieć to z tyłu głowy!