[SQL Server][bcp]marche / marche pas !

Résolu
cs_morsi Messages postés 20 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 28 juin 2006 - 14 oct. 2005 à 12:47
cs_morsi Messages postés 20 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 28 juin 2006 - 15 oct. 2005 à 14:29
bonjour,



j'ai 2 serveurs, un servuer de développement et un serveur de
production (les 2 serveurs ne sont pas sur les mêmes machine et à
priori ayant la même version de sql Server 2000)



sur mon serveur de dev, j'essai une commande bcp trés basique et trés
simple qui importe des données dans une table, ok tout marche bien



Sur le serveur de prod, (j'ai envoyé la structure de la base que j'ai
en dev pour le servuer de prod sous forme de fichier dat), exactement
la même commande avec exactement le même fichier ne marche pas et
affiche des erreurs sur le format de date !! (j'ai bien dis qu'on avait
la même structure)



l'erreur :

"[ODBC SQL SERVER driver]Format de date non valide"



des idées ?



En vous remerciant !

Think different ...

3 réponses

mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 7
14 oct. 2005 à 14:40
Oups j'ai cliqué au mvs endroit

Je reprends :

insert into toto (madate)
values (convert(datetime,'15/05/2005',103))
où 103 correspond au format DD/MM/YYYY

112 correspond à un format YYYYMMDD
etc...
Les autres valeurs de format possibles sont donnés dans l'aide SQL Server

De même quand tu veux récupérer un champ date, il vaut mieux le convertir en chaine de caractères
select madate from toto
va renvoyer 15/05/2005 sur ton poste de dév et 2005/05/15 sur ton serveur de prod
--> select convert(varchar,madate,103) from toto
te renverra tjs 15/05/2005
3
mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 7
14 oct. 2005 à 14:35
Salut,

Sur ton poste de développement, tu as peut-être un format de date DD/MM/YYYY.
Qd tu fais :
insert into toto(madate) values('15/05/2005')
il réussit à transformer ta chaine de caractères en format date

Si, sur ton serveur, le format de date est YYYY/MM/DD
Qd tu fais :
insert into toto(madate) values('15/05/2005')
il n'arrive pas à transformer en date ta chaine de caractères.

Pour t'affranchir de ce genre de problèmes, il faut que tu indiques dans ta requête le format de date à utiliser
insert into toto (madate)
values (convert(datetime,'15/05/2005',103))
0
cs_morsi Messages postés 20 Date d'inscription vendredi 23 mai 2003 Statut Membre Dernière intervention 28 juin 2006
15 oct. 2005 à 14:29
Merci beaucoup pour l'aide !



La finction convert fonctionne à merveille !

Think different ...
0
Rejoignez-nous