1
votes

Dans le package d'exportation SSIS, comment renommer le fichier Excel de destination avec l'horodatage qui lui est attaché?

Dans le package d'exportation SSIS, comment renommer le fichier Excel de destination avec l'horodatage qui lui est attaché?

J'ai Excel comme fichier de destination. Comment renommer le fichier de destination avec l'horodatage attaché à son suffixe?

tel que myfile_010120191100.xls

La création d'un nom de fichier dynamique nous aidera à éviter l'écrasement.


0 commentaires

3 Réponses :


2
votes

Créez une variable dans votre volet de variables pour FileName.

Vous pouvez utiliser des expressions pour créer un nom de fichier comme celui-ci:

"FilePathHere\FileName_" +  (DT_WSTR,4)YEAR(GETDATE()) + "" +
RIGHT("0" + (DT_WSTR,2)MONTH(GETDATE()), 2) + "" +
RIGHT("0" + (DT_WSTR,2)DAY( GETDATE()), 2) + 
"_" + Right("0" + (DT_STR,2,1252) DatePart("hh",getdate()),2) +
Right("0" + (DT_STR,2,1252) DatePart("mi",getdate()),".xlsx"

Vous pouvez cliquer sur Evaluer l'expression pour vous assurer cela fonctionne et vous donne le chemin que vous voulez.

Ensuite, dans votre gestionnaire de connexions de fichiers plats, allez dans les propriétés et cliquez sur Expressions -> Chaîne de connexion.

C'est ici que vous sélectionnez le nom de variable ci-dessus pour votre nom de fichier.

Ajout d'une note: Dans l'expression, il fait le DROIT ("0" .. sur la chaîne du mois, donc s'il s'agit d'un mois à 1 chiffre, il ajoutera un 0 devant lui (même chose pour les autres) afin qu'ils soient toujours 2 chiffres.


0 commentaires

2
votes

Je l'ai fait il y a quelques jours comme ça:

Utilisez un éditeur de tâches de système de fichiers avec l'opération Renommer le fichier. L'image ci-dessous, j'ai une variable appelée FilePathTargetCopy, qui est codée en dur comme C: /Users/MyUser/Desktop/aaa.xlsx. TEST_Copy est un "Gestionnaire de connexion de fichiers" avec une opération "Créer un fichier".

Créez une connexion de fichier similaire, accédez à ses propriétés et ajoutez une expression ConnectionString avec:

REPLACE(@[User::FilePathTargetCopy],".xlsx","")+"-"+
RIGHT("0" + (DT_STR,4,1252) DatePart("yyyy",getdate()),4)+"-"+
Right("0" + (DT_STR,4,1252) DatePart("m",getdate()),2) +"-"+
Right("0" + (DT_STR,4,1252) DatePart("d",getdate()),2) + ".xlsx"


2 commentaires

Dois-je implémenter la tâche du système de fichiers au-dessus de la tâche de flux de données? c'est-à-dire démarrer à partir de la tâche du système de fichiers, puis aller à la tâche de flux de données ..?


j'ai besoin de minutes aussi



2
votes

Je sais que je suis en retard, mais j'utilise toujours une tâche de script pour définir des variables lorsqu'il s'agit de datetime et de définir des expressions par rapport à l'utilisation de variables. Je trouve plus facile de suivre les variables car les expressions semblent se perdre dans la logique.

Ce tableau devrait vous aider:

Format de la date et de l'heure dans la programmation C #

Format                                          E.g. Result
DateTime.Now.ToString("MM/dd/yyyy hh:mm tt")    05/29/2015 05:50 AM
DateTime.Now.ToString("MM/dd/yyyy H:mm")        05/29/2015 5:50
DateTime.Now.ToString("MM/dd/yyyy h:mm tt")     05/29/2015 5:50 AM
DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss")    05/29/2015 05:50:06


0 commentaires