如何在ssis中获取带时间戳的文件名

时间:2012-05-21 13:16:03

标签: ssis

我有一个输入文件,必须每天加载到我的表中。我收到以下格式的文件sample_20120518_160754.CSV。时间戳可能会有所不同,它不是当前时间戳

我使用表达式来获取文件名以及日期,但是如何获取文件的时间戳。

这是我用来获取带日期的文件的表达式。

"sample_" + RIGHT("0" + (DT_STR,4,1252)DATEPART("yyyy", (DT_DATE)@[User::p_varAsOfDate]), 4) + RIGHT("0" + (DT_STR, 2, 1252)DATEPART("dd", (DT_DATE)@[User::p_varAsOfDate]), 2) + (DT_STR, 2, 1252)DATEPART("mm", (DT_DATE)@[User::p_varAsOfDate]) +"_"  +".CSV"  

这个表达结果

sample_2012145_.CSV现在我也想要文件的时间戳。

2 个答案:

答案 0 :(得分:4)

这里的表达式将为您提供datepart +时间部分。您可以在其间添加其他分隔符以完成所需的格式。

(DT_STR, 4, 1252)DATEPART("yyyy", @[System::ContainerStartTime]) + 
RIGHT("0" + (DT_STR, 2, 1252)DATEPART("mm", @[System::ContainerStartTime]), 2) + 
RIGHT("0" + (DT_STR, 2, 1252)DATEPART("dd", @[System::ContainerStartTime]), 2) +
RIGHT("0" + (DT_STR, 2, 1252)DATEPART("hh", @[System::ContainerStartTime]), 2) +
RIGHT("0" + (DT_STR, 2, 1252)DATEPART("mi", @[System::ContainerStartTime]), 2) +
RIGHT("0" + (DT_STR, 2, 1252)DATEPART("ss", @[System::ContainerStartTime]), 2) + 

您可以编辑上面的表达式并使用您选择的其他变量。我选择了ContainerStartTime因为很容易。

答案 1 :(得分:3)

@[User::miFilePath]+"AnyName"+"_"+(DT_WSTR, 04) YEAR( GETDATE() )+(MONTH(GETDATE())>=10 ? (DT_WSTR, 02)MONTH(GETDATE()): "0"+(DT_WSTR, 02)MONTH(GETDATE()))+ (DAY(GETDATE())>=10? (DT_WSTR, 02)DAY(GETDATE()): "0"+(DT_WSTR, 02)DAY(GETDATE()))+"_"+RIGHT("0" + (DT_STR, 2, 1252)DATEPART("hh", GETDATE()), 2) +RIGHT("0" + (DT_STR, 2, 1252)DATEPART("mi", GETDATE()), 2) +RIGHT("0" + (DT_STR, 2, 1252)DATEPART("ss", GETDATE()), 2) + ".txt"