Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Sprawdzenie, czy jest w tabeli istnieje rekord pomiędzy określonym czasem
arturpiotrowski
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 6.12.2016

Ostrzeżenie: (0%)
-----


Mam w tabeli między innymi pola: time_from, time_to - typu TIME i pole day typu TINYINT. Dodaje do bazy rekord z takimi danymi:
Kod
day=1; time_from="13:00:01"; time_to="18:00:00";

Następnie dodaje takie dane:
Kod
day=1; time_from="14:00:01"; time_to="20:00:00";
day=1; time_from="11:00:01"; time_to="15:00:00";
day=1; time_from="12:45:01"; time_to="13:00:00";

Jeśli dodam powyższe dane, to w tabeli będzie kilka zadań wykonywanych w tym samym czasie, a założenie jest takie że nie może być więcej jak jedno zadanie w tym samym czasie. Nie mam pomysłu jak zbudować zapytanie SQL sprawdzające czy w czasie pomiędzy dwoma godzinami (gg:mm) time_from i time_to już coś jest w bazie.
Jak powinna wyglądać klauzula where dla takiego zapytania?.

Ten post edytował arturpiotrowski 29.03.2017, 20:54:03
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Chyba najprościej jest sprawdzić czy pomiędzy interesującymi Cię godzinami jakieś zadanie ma swój początek lub koniec. Jeśli ma początek, to decydujesz które ma pierwszeństwo i albo wciskasz nowe przed nie, albo ustawiasz nowe po jego końcu. Gdy masz w tym czasie koniec, to po prostu ustawiasz początek nowego po zakończeniu starego.

Inna sprawa jest taka, że IMHO źle do tego podszedłeś. Istotny jest bowiem początek i czas trwania, a nie godzina zakończenia. Tę łatwo wyliczyć dodając do początku czas trwania (IMG:style_emoticons/default/smile.gif) Poza tym dodając kolejne rekordy nie grzebiesz się z tym, ale jeśli to jest kolejka jakaś, to łapiesz pierwszy z brzegu o najwcześniejszej dacie. Gdy się skończy, znowu łapiesz najwcześniejszy, aż do wyczyszczenia kolejki. Wszystko zależy do czego Ci to potrzebne.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.12.2025 - 01:29