|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Arnaud Étudiant Inscription : mars 2011 Messages : 60 ![]() |
Bonjour,
Je suis actuellement en train d'importer un fichier source plat contenant 3 champs avec des dates aux formats suivant yyyymmdd ==> '20110502' Je souhaiterai lors de mon import convertir mes champs au format Date seulement lorsque que je fais mon import des erreurs sont générées... Je pensais donc importer toutes mes données premièrement au format DT-STR puis lancer une "tâche de conversion de données" pour mettre mes 3 champs au format DATE sauf que cela ne fonctionne pas non plus... La 3 solutions c'est d'executer une requête après importation de mon fichier et de faire un traitement sur mes 3 champs sauf que je ne sais pas à quel moment faut-il le faire ? Je vous joint le processus d'importation afin que vous puissiez me guider... Merci EDIT : Modification de de mon image, ajout du DDL de la table TEMP et ajout d'un extrait du fichier plat |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Bonjour,
Quelle est la DDL de votre table destinatrice ? Donnez nous également un extrait de jeu de données de votre fichier texte ? ++ |
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Arnaud Étudiant Inscription : mars 2011 Messages : 60 ![]() |
C'est bon j'ai complété avec les infos demandées dans mon premier message
|
|
|
00
|
|
|
#4 |
![]() ![]() |
Vous pouvez brancher la sortie rouge sur une alimentation de table avec le même format que les données sources afin de voir ce qui pèche dans votre fichier !
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#5 | |
|
Candidat au titre de Membre du Club
![]() Arnaud Étudiant Inscription : mars 2011 Messages : 60 ![]() |
Citation:
Enfin je capte certaines choses tout de mm, actuellement si mon fichier source n'est pas au même format que ma table de destination TEMP, j'ai une erreur qui se produit... Lorsque les deux tables sont identiques y a plus de problèmes toutes mes lignes sont crées sauf que pour ce faire je dois mettre mes 3 champs de date au format "varchar" et "DT_STR" (ce qui est la mm chose ?) Le problème que j'avais c'est que je pensais pourvoir transformer mes 3 champs date en utilisant la "tache de conversion", càd partir avec mon fichier source avec un type de données "varchar" et finir dans ma table TEMP un type de données "Date" Donc je vois bien que ça marche pas pour le moment... Donc est ce que c'est bien comme ca qu'il faut faire ? Ou juste faire un import fichier source et destination au mm format puis faire une requete SQL de conversion de mes champs date ? J'espère avoir reussi à me faire comprendre Merci également pour l'info de la flèche rouge, ca permet de faire du débug ? |
|
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Arnaud Étudiant Inscription : mars 2011 Messages : 60 ![]() |
Je me permet de relancer mon sujet car je me retrouve dans une impasse actuellement et je ne veux pas passer à autre chose sans avoir résolu ce problème.
Est ce que ça change quelque chose de faire mes conversions de type de données avant ou après l'insertion dans ma table TEMP ? C'est à dire retravailler pendant l'import ou après ? Au niveau des performances, selon la manière officielle de faire ? J'ai essayé de changer le format de date d'SQL Server afin qu'il corresponde avec mon fichier texte mais NADA... Donc est ce que je ferai pas une requète CONVERT pour transformer mon format des 3 champs dates ? Merci de votre aide |
|
|
00
|
|
|
#7 | ||
|
Membre Expert
![]() |
Citation:
mais vous pourriez très bien typer varchar votre colonne d'entrée puis faire une étape de conversion...Citation:
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
||
|
|
00
|
|
|
#8 | |
|
Candidat au titre de Membre du Club
![]() Arnaud Étudiant Inscription : mars 2011 Messages : 60 ![]() |
Citation:
Merci pour tes conseils mais quand tu dis typer varchar ma colonne d'entrée, c'est ce que j'essaye de faire depuis le début, enfin je crois ?! Puisque ma colonne d'entrée est de type varchar et que ma colonne de sortie est de type date... Sauf que ca marche pas ca, est ce qu'il faut que je change le format de date par defaut SQL Server, un truc du genre ? |
|
|
|
00
|
|
|
#9 | |
|
Membre Expert
![]() |
Citation:
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
|
00
|
|
|
#10 | |||
|
Candidat au titre de Membre du Club
![]() Arnaud Étudiant Inscription : mars 2011 Messages : 60 ![]() |
Citation:
Autre question, pour convertir mes champs date au format varchar quel serai la requête j'ai beau chercher je ne trouve pas de piste afin de convertir une colonne varchar vers date... ?? Code :
Merci d'avance |
|||
|
|
00
|
|
|
#11 | ||||
|
Membre Expert
![]() |
Citation:
Citation:
Code :
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
||||
|
|
00
|
|
|
#12 | |||||||
|
Candidat au titre de Membre du Club
![]() Arnaud Étudiant Inscription : mars 2011 Messages : 60 ![]() |
Citation:
En utilisant la fonction CONVERT je me retrouve avec le message d'erreur suivant : Code :
Est ce qu'il y faut que je change au préalable le format de date par défaut, ça n'a rien avoir ? Code :
EIDT : je viens de trouver ca sur le net : http://wiki.lessthandot.com/index.ph...of-range_value J'ai essayé de modifier ma requête en fonction des indications du site mais rien y fait... |
|||||||
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() |
Vous précisez le format (112) qui correspond à l'ISO.
SQL SERVER va chercher à convertir votre varchar en partant du principe que celle-ci est sous la forme aaaammjj ou aammjj. Si ce n'est pas le cas vous avez le message d'erreur que vous citez...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
00
|
|
|
#14 | |
|
Membre Expert
![]() |
Citation:
vous devez donc préciser le format dans lequel vous avez stocké en varchar vos dates (pas bien au passage )voyez ceci: http://msdn.microsoft.com/fr-fr/library/ms187928.aspx
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
|
00
|
|
|
#15 | |||
|
Candidat au titre de Membre du Club
![]() Arnaud Étudiant Inscription : mars 2011 Messages : 60 ![]() |
Citation:
Je reviens tout de même sur le "pas bien au passage" Pourriez vous m'expliciter votre pensé lorsque vous me dites cela ? Quel devrai être le format ? J'ai toujours voulu avoir mes champs dates dans le format le plus adapté Merci de vos précisions @Iberserk EDIT : Au départ on m'avait dit de tout importer au mm format type et je vois d'après votre lien sur le support SQL Server que la Conversion est implicite de Varchar à Datetime ! Pourquoi ça marche pas alors ? Mon format en varchar est aaaammjj donc 112 selon le tableau EDIT2 : C'est un truc du style qu'il faudrait faire ? Code :
Lorsque les champs de ma colonne date seront converties au format "datetime" ma colonne initialement au format varchar() ne changera pas de format mais seulement les données à l'intérieur. Ce qui signifie que lorsque je vais charger macolonneDate de ma table TEMPORAIRE vers mes tables en base, le format de celle-ci devront/pourront être de type "Date" ? J'espère réussir à me faire comprendre... EDIT3 : Je viens de m'apercevoir que j'ai une date à 00000000 !! et il semblerai que se soit celle ci qui m'affiche l'erreur. En effet j'ai mes 3 première lignes qui sont converties puis à la 4eme j'ai mon unique et seul date à 0... N'y aurait-il pas un moyen de la prendre en compte comme 0000 00 00 ? Merci |
|||
|
|
00
|
|
|
#16 | |
|
Membre Expert
![]() |
Citation:
Le mieu est d'utiliser le format ISO aaaammjj Si c'est votre cas et que la conversion ne fonctionne pas c'est que vous avez des verrues dans vos données...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com