web-dev-qa-db-fra.com

Le BCP in des données de type DateTime entraîne un "format de date / heure non valide"

Je me connais avec l'utilitaire BCP et j'ai une grande table contenant des données DateTime awhich i bcp sur plusieurs manières: natif, caractère, délimité.

Je suis ensuite bcp dans une table tronquée avec les mêmes colonnes/format que la table d'origine, mais j'obtiens des erreurs comme:

----------------
Starting copy...
SQLState = 22008, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Invalid time format
SQLState = 22008, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Invalid time format
SQLState = 22008, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Invalid time format
SQLState = 22008, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Invalid date format
SQLState = 22008, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Invalid date format
SQLState = 22008, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Invalid date format
SQLState = 22008, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Invalid time format
SQLState = 22008, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Invalid time format
SQLState = 22008, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Invalid time format
SQLState = 22008, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Invalid date format

4 rows copied.
Network packet size (bytes): 4096
Clock Time (ms.) Total     : 15     Average : (266.67 rows per sec.)
----------------

Et pour les lignes qui se sont copées copiées, les autres colonnes contiennent des données de déchets.

Si je fais le BCP/dans les données dans d'autres types de données, tout semble bien?

Comment puis-je faire cela pour travailler?

5
user1073

J'ai déjà vu cela auparavant. Assurez-vous que vos denttimes sont formatés comme ceci:

yyyy-mm-ddthh: mm: ss

Exemple:

2011-01-18T17: 30: 59 représenterait le 18 janvier 2011 à 17h30:59

Cela fait longtemps que j'ai rencontré un problème similaire à celui-ci, mais je me souviens que cela soit une étape que j'ai prise pour résoudre mon problème.

4
Matt M

Au cas où cela aide tout le monde. J'ai eu des problèmes similaires avec un format natif du BCP Exportation/importation d'une table contenant la date de type de données (Nouveau dans SQL Server 2008). Le correctif requis Utilisation d'un fichier de format généré (format Nul -X) et à l'aide de -f plutôt que -N à la fois à l'exportation et à l'importation. Même si le schéma pour l'exportation et l'importation étaient identiques, il y avait un problème à l'aide du type de données de date. Le fichier de format généré a été intact; Aucun montage du tout.

3
Peter DeGregorio

Ce problème peut également se produire si le schéma de la base de données exportatrice ne correspond pas au schéma de la base de données importatrice. Par exemple, sur la table où cette erreur s'est produite pour moi, la version d'importation de la table comportait deux bit colonnes ajoutées à la fin. C'était suffisant pour corrompre le processus d'importation et a abouti à cette erreur de format de date. Bien sûr, la solution est de s'assurer que la définition de la table est identique des deux côtés.

0
Kirk Woll