Import date Excel / SQL Server

Résolu/Fermé
Alexandre - 9 avril 2021 à 14:21
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 - 9 avril 2021 à 18:02
Bonjour,

Après des heures de recherche je vous sollicite pour un problème que je n'arrive pas à résoudre.

Je cherche à importer des données d'une feuille Excel vers une table SQL Server mais la colonne date pose problème.
Ma table SQL attend un format "Date" mais lors de l'import j'ai une erreur car les données venant d'Excel sont sous forme "Datetime".
Pourtant j'ai tout fait pour forcer le format date dans Excel, j'ai fait les manip sur Power Query mais rien n'y fait. Dans l'Excel le format est bon, il n'y a pas d'heures etc... mais l'import n'est pas validé.

Connaissez vous d'autres paramètres qui pourraient faire que SQL ne parvient pas à reconnaître mon format date ?
A voir également:

2 réponses

yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
9 avril 2021 à 15:03
bonjour,
peux-tu donner un exemple? veux-tu simplement supprimer la partie heure de la date?
le format, dans Excel, ne change rien à la valeur exportée.
je pense qu'il suffit de tronquer les données dans Excel pour supprimer la fraction de journée.
1
Bonjour, merci pour ta réponse.

Les données que je veux importer sont pourtant des jours sans heure. En version décimal, ce sont des valeurs entières.

Quand je fais l'import dans SQL, pour une date du 3 mars 2021, à la place de 2021-03-01, j'ai 2021-03-01 00:00:00
Il écrit l'heure (minuit pile) alors qu'à aucun moment une heure n'est précisé sur Excel.
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
9 avril 2021 à 15:29
SQL Server donne un message d'erreur?
0
Alexandre > yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024
9 avril 2021 à 16:28
Oui j'ai ces messages la :

Ils ont d'ailleurs changés, avant ils me parlaient du format date mais j'ai pas l'impression de retrouver le même message que précédemment, j'en suis encore plus perdu du coup.
ALZONNE et 20210301 correspondent aux valeur de ma première ligne à importer (1ere et dernière colonne). Le format datetime qui doit être date est à la 2e colonne



Copie vers [dbo].[ProductionExecuted] (Erreur)
Messages
Erreur 0xc0202009: Tâche de flux de données 1: Code d'erreur SSIS DTS_E_OLEDBERROR. Une erreur OLE DB s'est produite. Code d'erreur : 0x80004005.
Un enregistrement OLE DB est disponible. Source : « Microsoft OLE DB Provider for SQL Server » Hresult : 0x80004005 Description : « The statement has been terminated. ».
Un enregistrement OLE DB est disponible. Source : « Microsoft OLE DB Provider for SQL Server » Hresult : 0x80004005 Description : « Violation of PRIMARY KEY constraint 'PK_ProductionExecuted'. Cannot insert duplicate key in object 'dbo.ProductionExecuted'. The duplicate key value is (ALZONNE, 20210301). ».
(Assistant Importation et Exportation SQL Server)

Erreur 0xc0209029: Tâche de flux de données 1: Code d'erreur SSIS DTS_E_INDUCEDTRANSFORMFAILUREONERROR. Échec de l'objet « Destination - ProductionExecuted.Entrées[Destination Input] » en raison du code d'erreur 0xC020907B. En outre, la disposition de la ligne d'erreur sur « Destination - ProductionExecuted.Entrées[Destination Input] » spécifie un échec sur l'erreur. Une erreur s'est produite sur l'objet spécifié du composant spécifié. Des messages d'erreur peuvent être envoyés au préalable avec des informations indiquant la raison de l'échec.
(Assistant Importation et Exportation SQL Server)

Erreur 0xc0047022: Tâche de flux de données 1: Code d'erreur SSIS DTS_E_PROCESSINPUTFAILED. La méthode ProcessInput du composant « Destination - ProductionExecuted » (26) a échoué avec le code d'erreur 0xC0209029 pendant le traitement de l'entrée « Destination Input » (39). Le composant identifié a retourné une erreur de la méthode ProcessInput. Cette erreur, spécifique au composant, est irrécupérable et provoquera l'arrêt de la tâche de flux de données. Des messages d'erreur peuvent être envoyés au préalable avec des informations indiquant la raison de l'échec.
(Assistant Importation et Exportation SQL Server)


Merci pour ton temps
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > Alexandre
9 avril 2021 à 16:38
si je lis bien, la partie "utile" du message d'erreur est:
« Violation of PRIMARY KEY constraint 'PK_ProductionExecuted'. Cannot insert duplicate key in object 'dbo.ProductionExecuted'. The duplicate key value is (ALZONNE, 20210301).

Cela semble plutôt indiquer qu'on essaie de créer un enregistrement ayant les mêmes valeurs, pour les deux premiers champs, qu'un enregistrement existant, ce qui, vu la définition de la table ProductionExecuted, est interdit.
0
Alexandre > yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024
9 avril 2021 à 17:13
C'est vrai que ce que tu me dis me semble tout à fait cohérent, une clé primaire doit être unique. Le problème serait alors dans la construction de la table mais ce qui est bizarre alors c'est que dans cette tables j'ai plusieurs milliers de lignes qui se réfèrent à seulement une centaine de noms (j'ai plusieurs dizaines de lignes avec pour nom de site ALZONNE alors que Site est une clé primaire).

En tout cas tu fais avancer ma réflexion donc merci
0
Alexandre > yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024
9 avril 2021 à 17:34
Ah j'ai trouvé c'est bon ! Merci beaucoup tu avais raison.

En fait dans un premier temps j'avais un problème de format de date et j'avais lu le message d'erreur qui me donnait mon erreur de date. Ensuite, j'ai créé un fichier annexe pour faire des tests avec 2/3 valeurs (simples à supprimer en cas de doublon d'ajout par exemple) et j'ai fait mes modif Power Query et je pense que ça a résolu le problème.

Cependant, dans mon fichier test avec 2/3 valeurs au pif, j'avais ce fameux Alzonne du 1er mars et il se trouve que dans la base il y a déjà un Alzonne du 1er mars (les 2 colonnes sont clés primaires donc je peux ajouter de nouveaux Alzonne et de nouveaux 1er mars mais pas les 2 en même temps).

Sauf que je pensais connaître l'erreur, je ne la relisais pas alors qu'elle avait changer.

Je vais ré essayé avec mon fichier de base et non mon fichier test mais ça semble fonctionner merci à toi.
0