Wyszukiwanie aktualnie pracujących serwisów

Wyszukiwanie aktualnie pracujących serwisów
Halva
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam,
mam problem natury logicznej ;) Otóż, mam tabelę serwisów w której każdy serwis określa godziny pracy w dni dni powszednie, osobno w soboty i niedziele. Na stronie chcę dodać w wyszukiwarce możliwość dodania checkboxa "Znajdź pracujący serwis" który wybierałby z bazy MySQL serwis który aktualnie znajduje się w zakresie godzin pracy.

Godziny pracy określane są jako od - do -> liczby całkowite od 01-24.
W bazie wygląda to tak:

Kopiuj
work_hours_week_from:     { type: integer }
work_hours_saturday_from: { type: integer }
work_hours_sunday_from:   { type: integer }
work_hours_week_to:       { type: integer }
work_hours_saturday_to:   { type: integer }
work_hours_sunday_to:     { type: integer }

Problemu nie ma kiedy serwis pracuje do godz. 24. Natomiast gdy doba jest złamana - od 14 do 03 - pojawia się problem. Jaki warunek w MySQL logiczny postawić aby wybierał poprawne rekordy?

Kopiuj
...Where service.work_hours_week_from <= date('H') AND service.work_hours_week_to >= date('H')

Powyższy kod zadziała tylko w zakresie do 24. Macie na to jakiś pomysł?

Misiekd
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7923
1

jak czegoś nie popierdzieliłem to tak where (od < do and h >= od and h <= do) or (do < od and (h >= od or h <= do))

Halva
  • Rejestracja: dni
  • Ostatnio: dni
0

Dzięki za pomoc :) Po pewnej modyfilacji zadziałało :) Poniżej code :)

Kopiuj
...
((ps.work_hours_week_from < ps.work_hours_week_to and H >= ps.work_hours_week_from and H <= ps.work_hours_week_to) or (ps.work_hours_week_from > ps.work_hours_week_to and (H >= ps.work_hours_week_from or H <= ps.work_hours_week_to)))
// H to aktualna godzina 
...

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.