Problème de tri avec le champs DATE

[Résolu]
Signaler
Messages postés
51
Date d'inscription
jeudi 29 mars 2007
Statut
Membre
Dernière intervention
7 février 2020
-
Messages postés
51
Date d'inscription
jeudi 29 mars 2007
Statut
Membre
Dernière intervention
7 février 2020
-
Bonjour

Merci a ceux qui vont plancher avec moi et me filer un coup de main.

Voila mon probleme :
Mon probleme cible le tri sur les champs DATE.
Dans ma table, le champs et de la forme jj/mm/aaa hh:mm:ss
Or je dois l'afficher sous la forme jj/mm/aaaa, pour cela j'effectue la conversion suivante : convert(varchar(10), champs, 103).

Pour le moment tout vas bien.

Le probleme se corse au moment ou je veux afficher toutes les lignes ayant une date supérieur au 11/11/2008.
WHERE convert(varchar(10), champs, 103) >= '11/11/2008'
Cette clause where ne fonctionne pas, après analyse elle effectue le tri seulement sur le premier nombre avant le /

Mes questions sont les suivantes :
Peux t on faire un tri sur un champs DATE en utilisant les opérateurs <, >, = ??
SI oui, pourquoi dans mon cas ce la ne marche t il pas car la fonction convert renvoi une date par définition.

J'espere avoir ete assez clair,

Merci de votre aide

Xavier

5 réponses

Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
4
oups cest plutot

where champ >= convert(datetime, '11/11/2008', 103) : si champ est de type datetime.

je viens de faire un test vite fait avec sqlserver express, ca marche
Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
4
Bonjour,

ca fait un moment que je n'ai pas fait de sql server.
En effet du compare une chaine, donc '11/11/2008' est supérieur à '01/12/2008'.

Pourquoi ne fais-tu pas l'inverse dans la requete ? c'est a dire convertir la chaine en date pour comparer 2 dates et pas 2 chaines.
Messages postés
51
Date d'inscription
jeudi 29 mars 2007
Statut
Membre
Dernière intervention
7 février 2020

en effet j'etais moi aussi arriver a cette conclusion

mon probleme est maintenant,
comment dire affiche seulement les lignes dont la date est supérieur au 11/11/2008 sachant que mon champs date est au format jj/mm/aaaa hh:mm:ss ???

(WHERE champs >= '11/11/2008' ne marche pas)
Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
4
Et WHERE champs >= '11/11/2008 00:00:00' ? ca ne marche pas ?
Messages postés
51
Date d'inscription
jeudi 29 mars 2007
Statut
Membre
Dernière intervention
7 février 2020

Loool tu es un génie

Merci infiniment