Skocz do zawartości

[MySql] Formatowanie kodu


Stelma

Polecane posty

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ę

 

 

af2495ae.png

 

 

 

 

 

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

 

 

 

 

 

fb01e77b.png

 

 

 

 

 

 

 

 

 

 

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 :P)

Link do komentarza
Udostępnij na innych stronach

  • 2 years later...
  • 1 year later...

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...