
Praca z danymi czasowymi w bazach danych to codzienność dla wielu programistów i analityków. Jednym z podstawowych i często używanych funkcji SQL jest YEAR(), która pozwala szybko wyodrębnić rok z pola typu DATE lub DATETIME. W tym artykule dokładnie przeanalizuję, jak działa YEAR w języku SQL oraz podam praktyczne przykłady jego zastosowania.
Co to jest funkcja YEAR() w SQL?
Funkcja YEAR() w SQL służy do ekstrakcji wartości roku z kolumny zawierającej datę lub znacznik czasu (DATE, DATETIME, TIMESTAMP). Zwraca ona wartość całkowitą odpowiadającą czterocyfrowemu zapisowi roku.
Podstawowa składnia tej funkcji wygląda następująco:
SELECT YEAR('2024-06-15');
Wynik tego zapytania to:
2024
Przykłady użycia YEAR() w SQL
Przejdźmy do praktycznych zastosowań tej funkcji w różnych kontekstach bazodanowych.
1. Pobranie roku z kolumny typu DATE
Załóżmy, że mamy tabelę zamowienia z kolumną data_zamowienia o typie DATE. Aby uzyskać rok z każdego rekordu, możemy użyć:
SELECT id, YEAR(data_zamowienia) AS rok
FROM zamowienia;
2. Filtrowanie danych według roku
Jeśli chcemy otrzymać zamówienia tylko z 2023 roku, możemy wykorzystać WHERE z funkcją YEAR():
SELECT * FROM zamowienia
WHERE YEAR(data_zamowienia) = 2023;
3. Grupy i agregowanie danych po roku
Oprócz prostego pobierania wartości roku, możemy użyć tej funkcji do grupowania zamówień według roku i obliczania sumy zamówień.
SELECT YEAR(data_zamowienia) AS rok, COUNT(*) AS liczba_zamowien
FROM zamowienia
GROUP BY YEAR(data_zamowienia)
ORDER BY rok DESC;
Funkcja YEAR() a różne formaty daty
Funkcja YEAR() działa z wartościami w różnych formatach zapisu daty. Oto kilka przykładów:
| Wartość wejściowa | Wynik YEAR() |
|---|---|
| ’2023-12-01′ | 2023 |
| ’2018-05-20 15:30:00′ | 2018 |
| NOW() | Obecny rok |
Alternatywne sposoby pobierania roku
Poza funkcją YEAR(), istnieją inne sposoby wyciągania roku z kolumny o typie DATE lub DATETIME:
EXTRACT(YEAR FROM data_zamowienia)– standard SQL działający w wielu systemach baz danych.DATE_FORMAT(data_zamowienia, '%Y')– używane często w MySQL.
Przykładowe zapytanie z alternatywnym podejściem:
SELECT EXTRACT(YEAR FROM data_zamowienia) AS rok FROM zamowienia;
Podsumowanie
Funkcja YEAR() w SQL to niezwykle przydatne narzędzie do pracy z danymi czasowymi. Umożliwia szybkie pobieranie roku, filtrowanie rekordów i grupowanie danych. Znając jej możliwości, można z łatwością manipulować danymi i tworzyć bardziej przejrzyste raporty.
Inny ciekawy artykuł:
Jak działa EXTRACT w języku SQL? Przykłady zastosowania
Opanuj SQL z moim kursem!
Poznasz zarówno podstawy, jak i zaawansowane zapytania analityczne (CTE, subqueries, window functions). Nauczysz się pracować na różnych silnikach – na kursie pracujemy zarówno na MySQL, jak i na Postgres. Wszystko zainstalujemy na Twoim komputerze, plus dostaniesz mnóstwo zestawów danych do ćwiczeń.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, PowerBI, Tableau i Pythona z certyfikatami!
🟨 Ekskluzywana ale pomagająca sobie społeczność.
🟩 Ponad 75 godzin materiałów video.
🟨 Spotkania LIVE co miesiąc.
🟩 Mój osobisty mentoring.

