web-dev-qa-db-ja.com

SSIS式ビルダーを使用して、日付値をyyyy-mm-ddとしてフォーマットするにはどうすればよいですか?

こんにちは、フラットファイルのソース名を動的に取得しています「source 2011-08-11」のようなファイル名ファイル名ごとに最新のファイルを取得するための式ビルダーを作成しています。フォルダーパスを持つ変数を1つ作成しました:C\backup \

今式ビルダー内でどのように日付を追加できますか?私は

@[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"

間違っていますが、出力を与える式を教えてください: "source 2011-08-11"

20
Neo

正しい表現は

"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

別の質問を作成したようです。私はあなたの他の質問に答えていました SSISパッケージでforeachループコンテナーを使用してフラットファイルソースを変更する方法? 同じ答え。とにかく、ここに再びあります。

2つの文字列データ型変数、つまりDirPathFilePathを作成します。値C:\ backup \を変数DirPathに設定します。変数FilePathには値を設定しないでください。

Variables

変数FilePathを選択し、F4を選択してプロパティを表示します。 EvaluateAsExpressionプロパティをTrueに設定し、Expressionプロパティを@[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