[MySQL] Jak zadać pytanie o wszystkie wpisy między godziną 8 a 9 nie zależnie od daty ?

Bazy danych
[MySQL] Jak zadać pytanie o wszystkie wpisy między godziną 8 a 9 nie zależnie od daty ?

W zależności od sposobu przechowywania daty i czasu rozwiązanie tego problemu może być różne. Na potrzeby tego przykładu założymy że mamy jedną kolumnę typu datetime. Jest to dość często spotykane rozwiązanie w projektowanych bazach.

Typ kolumny mówi nam że będziemy mieli datę i czas zapisane razem np. „2013-11-05 12:00:00” co zmusza nas do wyizolowania tylko czasu bez daty. Do tego celu posłużymy się funkcją TIME do której przekazujemy nazwę naszej kolumny np. „data_utworzenia”.

SELECT TIME(data_utworzenia) FROM nazwa_tabeli

Powyższe zapytanie pozwoli zobrazować jaki efekt otrzymamy wykorzystując funkcji TIME, dla naszego przypadku będzie to „12:00:00”.

Teraz napisanie zapytania wybierającego tylko rekordy z określonego przedziału czasu wydaje się trywialne 😉

SELECT 
    * 
FROM 
    nazwa_tabeli 
WHERE 
    (TIME(data_utworzenia) > '8:00:00') AND 
    (TIME(data_utworzenia) < '9:00:00')