Skocz do zawartości


[MySql] Formatowanie kodu


2 odpowiedzi w tym temacie

#1 Stelma

    Starszy bywalec

  • Super użytkownicy
  • 103 Postów:
  • Gadu-Gadu:4588140

Napisano śro, 16 lis 2011 - 05:39

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ę


Dołączona grafika





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





Dołączona grafika











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)

#2 wizzarrd2

    Nowy na forum

  • Użytkownicy
  • 1 Postów:

Napisano pon, 06 paź 2014 - 20:57

Mam podobny problem... Podpinam się i proszę o pomoc...

#3 Booleeks

    Bywalec

  • Użytkownicy
  • 31 Postów:

Napisano czw, 12 lis 2015 - 09:51

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.