Jak to zapisac w mysql

0

Mam taki problem mam takie pola w MySQLu

    idPodstawowy    bigint(20)      UNSIGNED    Nie     Brak        AUTO_INCREMENT  Zmień Zmień     Usuń Usuń   

    Podstawowy Podstawowy
    Jednoznaczny Jednoznaczny
    Indeks Indeks
    Przestrzenny Przestrzenny
    Pełny tekst Pełny tekst
    Więcej

    2   id_usersIndeks  bigint(20)      UNSIGNED    Nie     Brak            Zmień Zmień     Usuń Usuń   

    Podstawowy Podstawowy
    Jednoznaczny Jednoznaczny
    Indeks Indeks
    Przestrzenny Przestrzenny
    Pełny tekst Pełny tekst
    Więcej

    3   id_actionsIndeks    bigint(20)      UNSIGNED    Nie     Brak            Zmień Zmień     Usuń Usuń   

    Podstawowy Podstawowy
    Jednoznaczny Jednoznaczny
    Indeks Indeks
    Przestrzenny Przestrzenny
    Pełny tekst Pełny tekst
    Więcej

    4   date_start  datetime            Tak     NULL            Zmień Zmień     Usuń Usuń   

    Podstawowy Podstawowy
    Jednoznaczny Jednoznaczny
    Indeks Indeks
    Przestrzenny Przestrzenny
    Pełny tekst Pełny tekst
    Więcej

    5   date_end    datetime            Tak     NULL            Zmień Zmień     Usuń Usuń   

    Podstawowy Podstawowy
    Jednoznaczny Jednoznaczny
    Indeks Indeks
    Przestrzenny Przestrzenny
    Pełny tekst Pełny tekst
    Więcej

    6   long    int(11)             Tak     NULL            Zmień Zmień     Usuń Usuń   

    Podstawowy Podstawowy
    Jednoznaczny Jednoznaczny
    Indeks Indeks
    Przestrzenny Przestrzenny
    Pełny tekst Pełny tekst
    Więcej

    7   if_all_day  tinyint(4)  

I teraz jak dodaje nową akcje to ona sprawdza czy nowa akcja nie zachodzi na akcje w bazie i to działa dobrze natomiast jak jest jest zaznaczone pole w if_all_day na 1 to ma sprawdzać czy nie cała data na chodzi tylko czas, np mamy datę 10-10-2020 12:00 - 20-10-2020 14:00 i pole if_all_day zaznaczone na 0 w tym przypadku zwróci błąd wy wszystkich datach od 10-10-2020 12:00 - 20-10-2020 14:00, ale jak zaznaczę pole w bazie pole if_all_day na 1 to w zwróci błąd w przypadku tylko 12-10-2020 13:00 - 13-10-2020 13:50 a w 12-10-2020 15:00 - 13-10-2020 17:50 już nie.

0

Mam coś takiego

select (case if_all_day when 0 then DATE(date_start)
when 1 then time(date_start)  end) as date_start2,(case if_all_day when 0 then date(date_end)
when 1 then time(date_end) end) as date_end2   from actions_plans
where (case if_all_day when 0 then DATE(date_start) 
when 1 then time(date_start)  end) <= '2020-12-17 18:00:00' and (case if_all_day when 0 then date(date_end)
when 1 then time(date_end) end) >= '2020-12-17 16:00:00';

I niech mi ktoś powie czy da się to zrobić tylko za pomoca sql np. w sql dać instrukcje, żeby wyciągnąć to czy trzeba kokombinowac z php i sprawdzać czy to pole jest równe 1 i w zaleśności od tego dać odpowiednie zapytanie ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0