Problème SQL - ORDER BY avec des DATES

Résolu
matmat8888 Messages postés 36 Statut Membre -  
matmat8888 Messages postés 36 Statut Membre -
Bonjour à tous !

Voilà en gros j'ai créé un planning de location de vélos et le but c'est d'afficher les tâches à effectuer par dates...

Pour l'instant je fais un ORDER BY date_debut et j'affiche uniquement les commandes dont la date_fin >= date_aujourdhui.

Mon soucis que j'ai une commande de 3 mois qui s'affiche en permanence tout en haut alors que on l'a loué il y a déjà un mois ( ie date_debut < date_aujourd'hui)

En réalité je voudrais un ORDER BY sur la date de debut sauf si la date de début <= CURDATE( ) et dans ce cas je veux considérer la date de fin...

Merci d'avance pour vos réponses !

ps : j'utilise phpmyadmin
A voir également:

4 réponses

yg_be Messages postés 24281 Statut Contributeur Ambassadeur 1 584
 
bonsoir. pourquoi ne pas , simplement, faire ce que tu décris parfaitement:
ORDER BY sur la date de debut sauf si la date de début <= CURDATE( ) et dans ce cas je veux considérer la date de fin
ORDER BY if(date_debut > CURDATE( ) , date_debut , date_fin)

qu'en penses-tu?
1
matmat8888 Messages postés 36 Statut Membre
 
au fait parce que je ne savais pas que je pouvais utiliser des if avec mysql mais tu avais la bonne réponse ! thanks ! :)

ORDER BY IF(t1.debut < CURDATE( ), t1.fin, t1.debut)
0
jordane45 Messages postés 40050 Statut Modérateur 4 756
 
Donc il faut que tu nous montre la requête concernée....
(et QUE la requête)
Celle que tu as testé dans phpmyadmin ....


NB : Pour poster du code sur le forum.. merci d'utiliser la coloration syntaxique (les balises de code).
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
0
Utilisateur anonyme
 
Bonjour,

pourquoi la commande qui date de 3 mois n'a pas de date de fin ???

A+

Ce n'est pas à un vieux singe qu'on apprend à faire des grimaces
0
Utilisateur anonyme
 
Donc dans ta clause WHERE :

WHERE date_fin >= CURDATE( ) AND date_debut <= CURDATE( )


A+
0