Stelma Napisano Listopad 16, 2011 Zgłoś Share Napisano Listopad 16, 2011 Witam, Dziś postanowiłem poćwiczyć SQL'a i postawiłem sobie proste zadanie, chodzi o przechowywanie godzin otwarcia sklepu danego dnia. Jak wiemy sklepy są otwarte 7 dni w tygodniu dajmy na to przykładowy dzień od 06:00 do 02:00, a drugiego dnia już od 05:25 do 23:30. Dlatego stworzyłem sobie taką oto tabelę shop_id => klucz obcy nas nie interesuje day => numer dnia w którym obowiązuje zakres np 0 -> poniedziałek, 6 -> niedziela open => godzina otwarcia sklepu w czasie unixowym np ( 18000 ) close => godzina zamknięcia sklepu w czasie unixowym np ( 14400 ) Jak widać już teraz godzina zamknięcia sklepu jest mniejsza od godziny otwarcia mimo iż obowiązuje dla tego samego dnia ! Wszystko było by ładnie pięknie ślicznie i w ogóle, ale no właśnie zawsze jest jakieś ale nie pasuje mi zapytanie sql którym chciałbym wyciągnąć który ze sklepów jest w danej chwili otwarty może dam fotke uzupełnionej bazy o 3 sklepy SELECT * FROM `shop_work` WHERE 86400 * `day` + `open` >= :time AND IF( `close` <= `open`, `close` + ( `day` + 1 ) * 86400, close + day * 86400) <= :time Jak wiadomo sklepy mogą być otwarte w czasie magicznej bariery 00:00 dlatego nie mogę założyć warunku na dzień. Może ktoś zechciałby mi pomóc z opanowaniem stylu(?) w jakim się powinno pisać w SQL bo przyznam że jaki kod bym nie czytał to nie czytelny jest (nie że nie rozumiem ) Link do komentarza Udostępnij na innych stronach More sharing options...
wizzarrd2 Napisano Październik 6, 2014 Zgłoś Share Napisano Październik 6, 2014 Mam podobny problem... Podpinam się i proszę o pomoc... Link do komentarza Udostępnij na innych stronach More sharing options...
Booleeks Napisano Listopad 12, 2015 Zgłoś Share Napisano Listopad 12, 2015 Te wartości proszę dać jako stałe (count) no i te wartości muszą byc zrobione przedziałem Wg mnie to powinno pomóc. Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.