Wpis z mikrobloga

#mysql #sql i grzecznościowo #webdev

nie mogę wykminić zapytania sprawdzającego czy są konflikty - nachodzenie się czasu rezerwacji (FodGodziny, FdoGodziny DATETIME;)

koniunkcja trzech warunków:

1. czas nowej rezerwacji zaczyna się przed istniejącą rezerwacją, ale kończy w jej trakcje

2. czas nowej rezerwacji całkowicie zawiera się w istniejącej rezerwacji (to mam, proste :D)

3. czas nowej rezerwacji zaczyna się w trakcie istniejącej rezerwacji, ale kończy się po niej
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Masz trzy warunki:

(new_start BETWEEN old_start AND old_end) OR

(new_end BETWEEN old_start AND old_end) OR

(new_start < old_start && new_end > old_end) (to ten który rzekomo rozkminiłeś :))
  • Odpowiedz
@fuuYeah: Twoje rozwiązanie zawiera o wiele za dużo porównań. Przekleję, bo może nikomu nie chciało się kliknąć:

Let ConditionA Mean DateRange A Completely After DateRange B (True if StartA > EndB)

Let ConditionB Mean DateRange A Completely Before DateRange B (True if EndA <
  • Odpowiedz
@the4dk: Masz rację, moje jest za to łatwiejsze do zrozumienia na początku ( ͡° ͜ʖ ͡°) btw. bardzo ciekawe podejście, zawsze to jakaś oszczędność dla serwera na którym stoi baza :)
  • Odpowiedz