
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, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.