Requete avec Between SQL 2008

Résolu
cs_maloue Messages postés 13 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 21 décembre 2010 - 20 déc. 2010 à 17:25
cs_maloue Messages postés 13 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 21 décembre 2010 - 21 déc. 2010 à 20:04
Bonjour,
J'ai une table avec un champ Dat de type Date sur lequel j'essaie de faire une requete avec between.

requete "Select * from Ma-Table Where Type 1 And Dat Between '" & Date-Deb & "' And '" & Date-Fin & "'"

En visualisation dans la base de donnée le champ dat est au format yyyy-MM-DD

Les variables Date-Deb et Date-Fin sont au format DD/MM/YYYY

La requete ne tiens pas compte de ma sélection et me retourne toute les lignes.

pouvez vous m'éclairer sur la bonne syntaxe à utiliser !

Par avance merci pour votre réponse.

4 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 41
21 déc. 2010 à 16:41
Pourquoi 120 ?

Si tes variables date-deb et date-fin donnent des dates au format français (jj/mm/aaaa) c'est 103 (français/anglais) que tu dois indiquer comme style à la fonction CONVERT


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 41
20 déc. 2010 à 17:42
Soit tu fais en sorte que tes dates soient exprimées au format américain (mm/jj/aaaa) soit tu les passes telles quelles (comme actuellement) mais tu indique à la requete comment faire la conversion en utilisant la fonction Convert :

... Where Type = 1 And Dat Between CONVERT(Datetime,'" & Date-Deb & "',103) And CONVERT(Datetime,'" & Date-Fin & "',103)"


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
0
cs_maloue Messages postés 13 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 21 décembre 2010
21 déc. 2010 à 16:30
Bonjour,
Merci pour votre réponse
Pour mes essais j'ai changer le champ date en smalldatetime.

Les variables Date-Deb et Date-Fin sont au format DD/MM/YYYY

Le champ dat à la valeur "2010-01-14 00:00:00"

Requete "Select * from ma-table Where type 1 And Dat Between CONVERT(SmallDateTime,'" & Date-Deb & "',120) And CONVERT(SmallDateTime,'" & Date-Deb & "',120)"

Le requete ne me retourne rien ?

Par avance merci pour vos conseils.
0
cs_maloue Messages postés 13 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 21 décembre 2010
21 déc. 2010 à 20:04
Merci pour votre aide.

La requete fonctionne.
0