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

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

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

KajoDataSpace