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.
Przydatne funkcje:
YEAR(data)- wyciąga sam rokMONTH(data)- wyciąga miesiąc (np. 5)DAY(data)- wyciąga dzień z datyCURDATE()/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!
