MySql : IF dans clause Where [Résolu]

jordane45 21400 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 16 juin 2018 Dernière intervention - 14 févr. 2014 à 09:56 - Dernière réponse : jordane45 21400 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 16 juin 2018 Dernière intervention
- 14 févr. 2014 à 16:50
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.


Afficher la suite 

Votre réponse

1 réponse

jordane45 21400 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 16 juin 2018 Dernière intervention - 14 févr. 2014 à 16:50
0
Merci
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') 


Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.