在SSIS导出程序包中,如何重命名带有时间戳的目标excel文件?
我将Excel作为目标文件。如何重命名带有后缀的时间戳记的目标文件?
例如myfile_010120191100.xls
生成动态文件名将有助于我们避免覆盖。
答案 0 :(得分:2)
在变量窗格中为FileName创建一个变量。
您可以使用表达式来构建这样的文件名:
"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"
您可以单击“评估表达式”以确保其有效并提供所需的路径。
然后在平面文件连接管理器中转到属性,然后单击表达式->连接字符串。
在这里,您为文件名选择上面的变量名。
添加注释: 在表达式中,它在月份的字符串上执行RIGHT(“ 0”..。因此,如果它是1位数的月份,它将在其前面附加一个0(其余部分相同),因此它们始终为2数字。
答案 1 :(得分:2)
我几天前才这样做:
对“重命名文件”操作使用文件系统任务编辑器。在下图中,我有一个名为FilePathTargetCopy的变量,该变量的编码类似于C:/Users/MyUser/Desktop/aaa.xlsx。 TEST_Copy是具有“创建文件”操作的“文件连接管理器”。
创建一个类似的File连接,转到其属性,并添加带有以下内容的ConnectionString表达式:
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"
然后,使用OverWrite = true将其设置为DestinationConnection,如下所示。
答案 2 :(得分:2)
我知道我来晚了,但是在日期时间和设置表达式与使用变量时,我总是使用脚本任务来设置变量。我发现跟随变量比较容易,因为表达式似乎在逻辑中迷失了。
此表应为您提供帮助:
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