web-dev-qa-db-fra.com

Comment formater la valeur de date en aaaa-mm-jj à l'aide du générateur d'expression SSIS?

salut j'ai pris le nom de source flatfile dynamiquement I.e. nom de fichier comme "source 2011-08-11" Je crée un générateur d'expression pour prendre le fichier le plus récent selon le nom de fichier. J'ai aimé Créé une variable qui a un chemin de dossier: C\backup \

maintenant à l'intérieur du générateur d'expressions comment puis-je ajouter une date ??? j'ai essayé comme

@[User::DirPath]+"source"+ (DT_STR,4,1252)YEAR( DATEADD( "dd", -1, getdate() ))
+"-"+(DT_STR,4,1252)MONTH( DATEADD( "dd",-1, getdate() ))+"-"+(DT_STR,4,1252) 
DAY(DATEADD( "dd", -1, getdate() )) +".CSV"

ce qui est faux veuillez me donner l'expression qui me donne la sortie: "source 2011-08-11"

20
Neo

L'expression correcte est

"source " + (DT_STR,4,1252)DATEPART( "yyyy" , getdate() ) + "-" +
RIGHT("0" + (DT_STR,4,1252)DATEPART( "mm" , getdate() ), 2) + "-" +
RIGHT("0" + (DT_STR,4,1252)DATEPART( "dd" , getdate() ), 2) +".CSV"
45
Deepankar Sarkar

Il semble que vous ayez créé une question distincte. Je répondais à votre autre question Comment changer la source de fichier plat en utilisant le conteneur de boucle foreach dans un package SSIS? avec la même réponse. Quoi qu'il en soit, le voici à nouveau.

Créez deux variables de type de données chaîne, à savoir DirPath et FilePath. Définissez la valeur C:\backup\sur la variable DirPath. Ne définissez aucune valeur sur la variable FilePath.

Variables

Sélectionnez la variable FilePath et sélectionnez F4 pour afficher les propriétés. Définissez la propriété EvaluateAsExpression sur True et définissez l'expression propriété en tant que @[User::DirPath] + "Source" + (DT_STR, 4, 1252) DATEPART("yy" , GETDATE()) + "-" + RIGHT("0" + (DT_STR, 2, 1252) DATEPART("mm" , GETDATE()), 2) + "-" + RIGHT("0" + (DT_STR, 2, 1252) DATEPART("dd" , GETDATE()), 2)

Expression

3
user756519