Between avec date format français et format anglais avec SQL Server [Résolu]

js8bleu 576 Messages postés samedi 14 octobre 2006Date d'inscription 27 janvier 2014 Dernière intervention - 24 avril 2012 à 04:31 - Dernière réponse : js8bleu 576 Messages postés samedi 14 octobre 2006Date d'inscription 27 janvier 2014 Dernière intervention
- 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.
Afficher la suite 

8 réponses

Répondre au sujet
js8bleu 576 Messages postés samedi 14 octobre 2006Date d'inscription 27 janvier 2014 Dernière intervention - 29 avril 2012 à 13:06
+1
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de js8bleu
Calade 1212 Messages postés dimanche 20 avril 2003Date d'inscription 4 juin 2016 Dernière intervention - 24 avril 2012 à 08:21
0
Utile
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
Commenter la réponse de Calade
js8bleu 576 Messages postés samedi 14 octobre 2006Date d'inscription 27 janvier 2014 Dernière intervention - 24 avril 2012 à 19:54
0
Utile
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.
Commenter la réponse de js8bleu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 24 avril 2012 à 20:25
0
Utile
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
Commenter la réponse de ucfoutu
tri_yann 124 Messages postés mercredi 23 novembre 2005Date d'inscription 19 septembre 2013 Dernière intervention - 25 avril 2012 à 01:25
0
Utile
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
Commenter la réponse de tri_yann
Calade 1212 Messages postés dimanche 20 avril 2003Date d'inscription 4 juin 2016 Dernière intervention - 25 avril 2012 à 07:40
0
Utile
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
Commenter la réponse de Calade
cs_gide_x 37 Messages postés mardi 17 février 2004Date d'inscription 20 mai 2016 Dernière intervention - 25 avril 2012 à 08:06
0
Utile
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.
Commenter la réponse de cs_gide_x
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 25 avril 2012 à 08:13
0
Utile
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
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.