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

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

Pracując z danymi w SQL, jednym z częstszych zadań jest operowanie na datach. SQL oferuje wiele funkcji do pracy z datami, a jedną z najbardziej przydatnych jest DAY. Dzięki niej możemy w łatwy sposób wydobyć dzień miesiąca z wartości typu DATE oraz DATETIME. Dziś przyjrzymy się bliżej temu, jak działa DAY w języku SQL oraz jak można go wykorzystać w praktyce.

Co robi funkcja DAY w SQL?

Funkcja DAY zwraca liczbę całkowitą reprezentującą dzień miesiąca dla podanej wartości daty. Jest to równoznaczne z funkcją DAYOFMONTH.

Ogólna składnia tej funkcji wygląda następująco:

SELECT DAY(data_kolumna) FROM tabela;

Przykłady zastosowania funkcji DAY

Aby lepiej zrozumieć działanie tej funkcji, prześledźmy kilka przykładów.

1. Wydobycie dnia z konkretnej daty

Jeśli chcemy wyciągnąć dzień z konkretnej daty, możemy użyć następującego zapytania:

SELECT DAY('2024-06-15') AS dzien;

Wynik:

dzien
15

2. Pobranie dnia z kolumny w tabeli

Załóżmy, że mamy tabelę zamowienia z kolumną data_zamowienia. Chcielibyśmy uzyskać dzień, w którym zostało złożone każde zamówienie:

SELECT id, data_zamowienia, DAY(data_zamowienia) AS dzien_zlozenia  
FROM zamowienia;

Przykładowy wynik:

id data_zamowienia dzien_zlozenia
1 2024-06-01 1
2 2024-06-15 15
3 2024-06-30 30

3. Filtracja zamówień złożonych w określonym dniu

Jeśli chcemy znaleźć wszystkie zamówienia złożone 15. dnia miesiąca, możemy użyć takiego zapytania:

SELECT * FROM zamowienia WHERE DAY(data_zamowienia) = 15;

DAY w różnych systemach baz danych

W zależności od systemu bazodanowego, składnia może się delikatnie różnić:

  • MySQL, MariaDB: DAY(data) lub jego odpowiednik DAYOFMONTH(data)
  • SQL Server: DAY(data)
  • PostgreSQL: EXTRACT(DAY FROM data)
  • Oracle: EXTRACT(DAY FROM data)

Kiedy używać (a kiedy nie używać) DAY?

Funkcja DAY jest bardzo przydatna w wielu scenariusch, ale warto pamiętać o kilku kwestiach:

Zalety używania DAY:

  • Łatwe wydobywanie dnia z daty.
  • Prosta składnia, kompatybilna z wieloma bazami.
  • Możliwość używania w filtrach (WHERE) i analizach (GROUP BY).

Kiedy lepiej jej unikać?

  • W warunkach WHERE, jeśli mamy indeks na kolumnie DATE – użycie DAY(data_kolumna) sprawi, że indeks może nie być wykorzystywany.
  • Gdy potrzebujemy bardziej zaawansowanej analizy – wówczas lepiej skorzystać np. z funkcji EXTRACT.

Podsumowanie

Funkcja DAY w SQL jest niezwykle przydatna, gdy pracujemy z danymi typu DATE i chcemy szybko uzyskać numer dnia miesiąca. Dzięki prostocie składni możemy łatwo wydobywać dzień, filtrować dane i stosować tę funkcję w raportach. Choć w niektórych przypadkach warto rozważyć inne metody, w większości codziennych zastosowań DAY sprawdzi się świetnie.

 

Inny ciekawy artykuł:

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

KajoDataSpace