
Funkcja HOUR
w SQL jest niezwykle przydatnym narzędziem, które pozwala na ekstrakcję godziny z wartości typu DATETIME
lub TIME
. Jeśli często pracujesz z danymi czasowymi, na pewno warto ją znać i umieć stosować w praktyce.
Jak działa HOUR w języku SQL?
Funkcja HOUR
zwraca godzinę (w zakresie od 0 do 23) z wartości daty i czasu. Jest dostępna w wielu systemach zarządzania bazami danych (DBMS), w tym w MySQL, MariaDB oraz niektórych wariantach SQL Server i PostgreSQL.
Podstawowa składnia tej funkcji wygląda następująco:
SELECT HOUR(data_i_czas) FROM nazwa_tabeli;
Jeśli wartość data_i_czas
wynosi '2024-06-15 14:30:00'
, funkcja zwróci liczbę 14
, czyli godzinę z tego znacznika czasu.
Przykłady zastosowania funkcji HOUR
Aby lepiej zrozumieć, jak działa HOUR
w SQL, przeanalizujmy kilka przykładów.
1. Pobieranie godziny dla każdej wartości w tabeli
Załóżmy, że mamy tabelę zamowienia
z kolumną data_zamowienia
, która przechowuje wartość typu DATETIME
. Chcemy uzyskać godzinę złożenia każdego zamówienia.
SELECT id_zamowienia, HOUR(data_zamowienia) AS godzina_zamowienia
FROM zamowienia;
2. Filtrowanie danych na podstawie godziny
Możesz również użyć funkcji HOUR
do filtrowania zapisów w bazie danych. Na przykład, jeśli chcesz znaleźć wszystkie zamówienia złożone między godziną 9 a 12:
SELECT * FROM zamowienia
WHERE HOUR(data_zamowienia) BETWEEN 9 AND 12;
3. Grupowanie zamówień według godziny
Jeśli chcesz sprawdzić, o której godzinie składanych jest najwięcej zamówień, wystarczy użyć funkcji HOUR
w połączeniu z GROUP BY
i COUNT
.
SELECT HOUR(data_zamowienia) AS godzina, COUNT(*) AS liczba_zamowien
FROM zamowienia
GROUP BY godzina
ORDER BY liczba_zamowien DESC;
Obsługa NULL i wartości błędnych
Warto pamiętać, że jeśli kolumna przekazana do funkcji HOUR
zawiera wartość NULL
, wynik również będzie NULL
. Dlatego czasami warto użyć funkcji COALESCE
, aby zastąpić wartość NULL
domyślną wartością, np. 0.
SELECT COALESCE(HOUR(data_zamowienia), 0) AS godzina
FROM zamowienia;
Porównanie funkcji HOUR w różnych bazach danych
Nie wszystkie systemy bazodanowe obsługują funkcję HOUR
w identyczny sposób. Oto kilka różnic:
System bazodanowy | Sposób użycia |
---|---|
MySQL / MariaDB | HOUR(data_i_czas) |
SQL Server | DATEPART(HOUR, data_i_czas) |
PostgreSQL | EXTRACT(HOUR FROM data_i_czas) |
Podsumowanie
Funkcja HOUR
w SQL jest prostym, ale bardzo użytecznym narzędziem do analizy danych czasowych. Możemy jej używać do ekstrakcji godzin w różnych zapytaniach, filtracji wyników oraz grupowania danych na podstawie godziny. Chociaż jej implementacja może się różnić w zależności od systemu bazodanowego, ogólna funkcjonalność pozostaje taka sama. Dzięki tej funkcji możesz lepiej analizować trendy w danych, na przykład sprawdzając, o której godzinie klienci najczęściej składają zamówienia.
Inny ciekawy artykuł:
Jak działa DAY 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.