根据SSIS变量表达式中的条件将输入文件名追加到日期

时间:2012-09-12 10:03:05

标签: ssis

我有几个带有不同文件名的CSv输入文件以及不同的日期格式。我需要根据条件动态选择输入文件。

例如

i have files file120120909.csv, scalefile09102012.csv  

我需要根据条件检索输入文件。所以我采用了一个用户变量并以这种方式返回表达式

(@[User::Type] =="File" ? "file" : (@[User::type] =="scale" ? "scale_" :"NA"))  + (DT_STR,4,1252)DATEPART("yyyy", @[System::StartTime] ) + RIGHT("0" + (DT_STR,2,1252) DATEPART("mm", @[System::StartTime]),2) + RIGHT("0" + (DT_STR,2,1252)DATEPART("dd", @[System::StartTime]),2)  

当我评估表达式时,我得到了以下结果

file120120912  

现在,当我为用户变量@ [User :: Type] ==“scale”赋值时,表达式结果必须为scalefile09102012

因此根据条件我如何追加文件的日期

1 个答案:

答案 0 :(得分:0)

您可以将VB.NET代码编写到脚本任务中以解决您的问题:

    Dim type As String = Dts.Variables("Type").Value.ToString()
    Dim startDate As DateTime = DateTime.Parse(Dts.Variables("StartTime").Value.ToString())

    Dim result As String = ""

    If type.ToLower() = "file" Then
        result = type.ToLower() + startDate.ToString("yyyyMMdd")
    ElseIf type.ToLower() = "scale" Then
        result = type.ToLower() + "file" + startDate.ToString("MMddyyyy")
    Else
        result = "incorrect type"
    End If

    MsgBox(result)