MySql : IF dans clause Where [Résolu]

Signaler
Messages postés
28892
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 juillet 2020
-
Messages postés
28892
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 juillet 2020
-
Bonjour,

Je suis à la recherche de la syntaxe me permettant d'effectuer la chose suivante :

Dans ma Table, je dispose d'un CHAMP DATE_Evt et un CHamp HEURE_DEB et un CHAMP HEURE_FIN. ( et d'un CHAMP ID_Evt)

Exemples de données :
2014-02-13 10:00:00 11:00:00 1
2014-02-13 19:00:00 05:00:00 2

Je Souhaiterais pouvoir tester si NOW() se situe entre L'heure de début et l'heure de fin (chose facile lorsque l'heure de fin est > à l'heure de début).
Là où cela se complique c'est lorsque l'on est dans le cas N°2 ( cela signifie que l'évènement débute le 13/02/2014 à 19H et se terminera le 14/02/2014 à 05:00

J'ai donc pensé à faire un test du style :
SI Heure_debut < Heure_fin : alors Je test si NOW est entre ( je concatène la date d'évènement et l'heure de début et même chose avec l'heure de fin). SINON je prend Date_Evt + Heure_debut et Date_Evt (+1) + Heure_fin.
concat_ws(' ',DATE_ADD(EV.date_evenement,INTERVAL +1 DAY),heure_fin) >= concat_ws(' ','2014-02-13','20:58:00')


Bref..c'est juste la syntaxe du "IF" qui me manque ^^

Je poursuis mes recherches de mon côté.. mais si vous avez une idée;. n'hésitez pas.

Merci.


1 réponse

Messages postés
28892
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 juillet 2020
332
Bon ben le IF était la bonne solution.. ^^


IF(concat_ws(' ',EV.date_evenement,PED.heure_fin2) <= concat_ws(' ',EV.date_evenement,PED.heure_debut),
		        concat_ws(' ',DATE_ADD(EV.date_evenement,INTERVAL +1 DAY),heure_fin2),
		        concat_ws(' ',EV.date_evenement,PED.heure_fin2))
				  >concat_ws(' ','2014-02-13','19:00:00')