Baza wiedzy / SQL
Jak działa YEAR w języku SQL? Przykłady zastosowania

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.
