Between avec date format français et format anglais avec SQL Server

Résolu
js8bleu Messages postés 576 Date d'inscription samedi 14 octobre 2006 Statut Membre Dernière intervention 27 janvier 2014 - 24 avril 2012 à 04:31
js8bleu Messages postés 576 Date d'inscription samedi 14 octobre 2006 Statut Membre Dernière intervention 27 janvier 2014 - 29 avril 2012 à 13:06
Bonjour à tous,

j'utilise VB6 et j'ai installé SQL Server Express R2 en français. Tout s'est bien passé. Cependant les dates sont au format anglais alors que le SQL Server que j'ai installé est en français. Du coup, j'ai des problèmes avec les dates car à partir de l'interface de mon application les dates sont en français alors que dans ma base SQL Server elles s'enregistrent au format anglais. Je n'arrive par exemple pas à faire un utiliser une requête avec un between entre des dates. Voici ma requête :

select * From tfichesuivi Where datefichesuivi between convert(datetime,'" & txtdatedebut.Text & "',102) AND convert(datetime,'" & txtdatefin.Text & "',102)

Pouvez-vous m'aider s'il vous plaît?

NB: Les paramètres régionaux de mon pc sont sur casablanca. Mon Windows est en français.

Merci d'avance pour votre très précieuse aide.

Cordialement.
A voir également:

8 réponses

js8bleu Messages postés 576 Date d'inscription samedi 14 octobre 2006 Statut Membre Dernière intervention 27 janvier 2014 2
29 avril 2012 à 13:06
Bonjour à tous et Merci pour votre intérêt et votre compréhension. J'ai pu résoudre mon problème grâce à cette requête :

SELECT * FROM tfichesuivi F, ttypesortievehicule T, temploye E, tvehicule V  WHERE F.numtypesortievehicule = T.numtypesortievehicule 
AND F.numemploye E.numemploye AND F.numvehicule V.numvehicule 
AND  datefichesuivi BETWEEN convert(datetime,'" & txtdatedebut.Text & "',103) AND convert(datetime,'" & txtdatefin.Text & "',103)


Merci pour tout et prenez bien soin de vous.

Cordialement.
1
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
24 avril 2012 à 08:21
Bonjour,

A mon avis ne vient pas de là mais de ta requête. Tu compares des types date (DateTime) avec un type Text (txtdatedebut.Text), ce qui ne pourra pas marcher.

Soit tu modifies les quotes (') qui entoure txtdatedebut.Text en (#) sans les parenthèses, mais c'est dangereux à cause justement des format de dates.

Dans ce cas je te conseillerais de convertir txtdatedebut.Text en Date à la volée à l'aide de la fonction SQL Convert().

Petite précision, que représente DateTime ?. Un champ de table, alors préfixe le pour plus de clarté, le terme DateTime étant particulièrement ambigüe.


Calade
0
js8bleu Messages postés 576 Date d'inscription samedi 14 octobre 2006 Statut Membre Dernière intervention 27 janvier 2014 2
24 avril 2012 à 19:54
Bonjour Calade et Merci pour ton intérêt. Lorsque je reprends ma requête (donc sans les quotes) comme tu l'as si bien dis, il y a une erreur. Quant à la conversion par la fonction Convert. C'est bien ce que j'ai essayé de faire dans mon premier message. C'est ma première application sous SQL Server donc mes premières requêtes, franchement, je n'y comprends plus rien si tu peux m'aiguiller par un bout de code, n'hésites surtout pas car je suis bleu de chez bleu.

Merci d'avance.

Cordialement.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
24 avril 2012 à 20:25
Bonjour,
Il est vrai qu'il est inquiétant d'être toujours de la même couleur plus de trois ans après avoir commencé à s'intéresser à la manipulation des bases de données depuis VB6.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0

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

Posez votre question
tri_yann Messages postés 124 Date d'inscription mercredi 23 novembre 2005 Statut Membre Dernière intervention 19 septembre 2013 3
25 avril 2012 à 01:25
Bonjour,

Que se passe-t-il quand tu utilises
select * From tfichesuivi Where 
convert(datetime, datefichesuivi, 102) 
between convert(datetime,'" & txtdatedebut.Text & "',102) 
AND convert(datetime,'" & txtdatefin.Text & "',102)



Yann
0
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
25 avril 2012 à 07:40
Bonjour,

Utilises le modèle donné par tri_yann.
Reportes-toi à ta doc' SQL pour cela.

Sans les quotes tu dis avoir une erreur. Dans les quotes OK MAIS avec les #.
Sinon "une erreur" est assez vague comme explication.

Calade
0
cs_gide_x Messages postés 37 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 20 mai 2016 1
25 avril 2012 à 08:06
Saluit !

ou la manière "sale" pour mettre le format des dates de SQL dans l'ordre que tu veux, ici mois.jour.année
SET DATEFORMAT MDY;
avant ta requête

Ne fonctionne uniquement avec SQL Server !

JD.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
25 avril 2012 à 08:13
Je vois personnellement mal comment échapper aux # signalés 2 fois par Calade et( qui ne figurent toujours pas dans la requête.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Rejoignez-nous