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

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


      A+