Jak działa MONTH w języku SQL? Przykłady zastosowania

Jak działa MONTH w języku SQL? Przykłady zastosowania

Pracując z bazami danych, często muszę manipulować danymi dotyczącymi dat i czasów. Jedną z popularniejszych funkcji wykorzystywanych do tego celu w SQL jest MONTH. Dzięki niej mogę łatwo uzyskać numer miesiąca z wartości typu DATE lub DATETIME. W tym artykule pokażę, jak działa MONTH w języku SQL oraz jakie są jego praktyczne zastosowania.

Co robi funkcja MONTH w SQL?

Funkcja MONTH zwraca wartość całkowitą reprezentującą miesiąc z podanej wartości daty. Wynik zawiera liczby od 1 do 12, gdzie:

  • 1 oznacza styczeń,
  • 2 oznacza luty,
  • 3 oznacza marzec,
  • 12 oznacza grudzień.

Funkcja ta znajduje zastosowanie w różnych systemach bazodanowych, takich jak MySQL, SQL Server czy PostgreSQL.

Podstawowy sposób użycia MONTH

Aby wyciągnąć numer miesiąca z daty w SQL, wystarczy użyć funkcji MONTH wraz z dowolną kolumną typu DATE lub DATETIME. Oto przykładowe zapytanie:

SELECT MONTH('2024-06-15') AS numer_miesiaca;

Wynik tego zapytania to:

numer_miesiaca
6

Jak widzisz, funkcja MONTH zwróciła wartość 6, ponieważ przekazana data pochodzi z czerwca.

Przykłady zastosowania funkcji MONTH

Pogrupowanie danych według miesiąca

Jeśli mam tabelę zawierającą informacje o zamówieniach i chcę policzyć, ile zamówień złożono w poszczególnych miesiącach, mogę użyć funkcji MONTH w połączeniu z GROUP BY:

SELECT MONTH(data_zamowienia) AS miesiac, COUNT(*) AS liczba_zamowien
FROM zamowienia
GROUP BY MONTH(data_zamowienia)
ORDER BY miesiac;

Wynik tego zapytania może wyglądać tak:

miesiac liczba_zamowien
1 124
2 98
3 150

Dzięki temu mogę szybko zorientować się, w których miesiącach składano najwięcej zamówień.

Filtrowanie danych według miesiąca

Jeśli chcę wyświetlić tylko zamówienia z konkretnego miesiąca (np. z czerwca), mogę użyć funkcji MONTH w klauzuli WHERE:

SELECT * 
FROM zamowienia
WHERE MONTH(data_zamowienia) = 6;

To zapytanie zwróci wszystkie zamówienia z czerwca – przydatne, gdy analizuję wyniki sprzedażowe w konkretnym okresie.

Łączenie funkcji MONTH z DATENAME

W SQL Server mogę użyć funkcji DATENAME, aby zwrócić nazwę miesiąca zamiast jego numeru:

SELECT DATENAME(MONTH, '2024-06-15') AS nazwa_miesiaca;

Wynikiem tego zapytania będzie:

nazwa_miesiaca
Czerwiec

To szczególnie przydatne, gdy chcę generować raporty w bardziej czytelnej formie.

Funkcja MONTH w różnych systemach bazodanowych

Funkcja MONTH działa w różnych systemach baz danych, ale w niektórych przypadkach istnieją alternatywne sposoby uzyskania tych samych wyników:

  • MySQL: Funkcja MONTH() działa bez zmian.
  • SQL Server: Wspiera MONTH(), ale można też użyć DATEPART(MONTH, data).
  • PostgreSQL: Nie ma funkcji MONTH(), ale można uzyskać miesiąc poprzez EXTRACT(MONTH FROM data).

Przykład dla PostgreSQL:

SELECT EXTRACT(MONTH FROM '2024-06-15'::DATE) AS numer_miesiaca;

Podsumowanie

Funkcja MONTH w SQL to prosty, lecz bardzo użyteczny sposób na operowanie datami, zwłaszcza podczas analizowania danych sprzedażowych, generowania raportów czy filtrowania wyników. Obsługuje szeroki wachlarz zastosowań, od prostych zapytań po bardziej zaawansowane analizy.

Jeśli pracuję z różnymi systemami bazodanowymi, warto pamiętać, że PostgreSQL wymaga użycia EXTRACT zamiast MONTH. Jednak bez względu na system, znajomość tej funkcji znacząco ułatwia pracę z danymi.

 

Inny ciekawy artykuł:

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

KajoDataSpace