
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 odpowiednikDAYOFMONTH(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 kolumnieDATE
– użycieDAY(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
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.