bonjour, ma question est simple mais je n'ai pas réussi a trouver de réponse pour le moment .

voici ma requete :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT ag.matricule_agent, 
ag.nom_agent, 
ag.pnom_agent, 
ts.texte_site, 
td.annee_date, 
td.mois_date, 
td.jour_date, 
rp.heure_planifier,
isnull(rp.agpresent_planifier,0) as Present,
isnull(c.texte_conclusion, 'test')as conclusion
FROM tagent ag
Left join tvisite v on ag.matricule_agent=v.matricule_agent
left join rplanifiervisite rp on rp.id_visite=v.id_visite
left join  tdates td on rp.id_date=td.id_date
left join tsite ts on v.id_site = ts.id_site
left join tconclusion c on c.id_conclusion=v.id_conclusion
j'aimerais ajouter un order by pour trier le resultat par date mais comme vous le voyez ma date est sur 3 champs distincts, y'aurait il moyen de 'creer une date' à partir de mes trois champs ?
et si possible trier avec l'heure 'rp.heure_planifier' qui est au format varchar sous la forme '08:00' pour 8h

apres avoir recherché en profondeur j'ai trouvé l'expression qu'il me fallait : CAST(),

ca donne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
order by cast(cast(td.jour_date as varchar)+'/'+cast(td.mois_date as varchar)+'/'+cast(td.annee_date as varchar)+' '+rp.heure_planifier as datetime) DESC