Problème de tri avec le champs DATE

Résolu
6xavier6 Messages postés 51 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 7 février 2020 - 3 déc. 2008 à 09:28
6xavier6 Messages postés 51 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 7 février 2020 - 3 déc. 2008 à 15:55
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

fregolo52 Messages postés 1115 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 3
3 déc. 2008 à 13:56
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
3
fregolo52 Messages postés 1115 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 3
3 déc. 2008 à 10:53
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.
0
6xavier6 Messages postés 51 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 7 février 2020
3 déc. 2008 à 11:25
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)
0
fregolo52 Messages postés 1115 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 3
3 déc. 2008 à 13:46
Et WHERE champs >= '11/11/2008 00:00:00' ? ca ne marche pas ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
6xavier6 Messages postés 51 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 7 février 2020
3 déc. 2008 à 15:55
Loool tu es un génie

Merci infiniment
0
Rejoignez-nous