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

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

Votre réponse

8 réponses

Meilleure réponse
Messages postés
576
Date d'inscription
samedi 14 octobre 2006
Dernière intervention
27 janvier 2014
29 avril 2012 à 13:06
1
Merci
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.

Merci js8bleu 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de js8bleu
Messages postés
1212
Date d'inscription
dimanche 20 avril 2003
Dernière intervention
4 juin 2016
24 avril 2012 à 08:21
0
Merci
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
Messages postés
576
Date d'inscription
samedi 14 octobre 2006
Dernière intervention
27 janvier 2014
24 avril 2012 à 19:54
0
Merci
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
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
24 avril 2012 à 20:25
0
Merci
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
Messages postés
124
Date d'inscription
mercredi 23 novembre 2005
Dernière intervention
19 septembre 2013
25 avril 2012 à 01:25
0
Merci
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
Messages postés
1212
Date d'inscription
dimanche 20 avril 2003
Dernière intervention
4 juin 2016
25 avril 2012 à 07:40
0
Merci
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
Messages postés
37
Date d'inscription
mardi 17 février 2004
Dernière intervention
20 mai 2016
25 avril 2012 à 08:06
0
Merci
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
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
25 avril 2012 à 08:13
0
Merci
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.