Problème SQL - ORDER BY avec des DATES

Résolu
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

4 réponses

  1. Contributeur
    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. 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)
  2. Donc dans ta clause WHERE :

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


    A+
    1. 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