Stelma Posted November 16, 2011 Report Share Posted November 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 to comment Share on other sites More sharing options...
wizzarrd2 Posted October 6, 2014 Report Share Posted October 6, 2014 Mam podobny problem... Podpinam się i proszę o pomoc... Link to comment Share on other sites More sharing options...
Booleeks Posted November 12, 2015 Report Share Posted November 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 to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.