首页 > 解决方案 > 具有格式化时间的 SSIS 变量

问题描述

例如,我在一个表达式中有以下代码,它产生一个目录路径和一个文件名,例如 Adjustment_09_02_2019.csv。

 @[User::DestinationDirectory] 
   + "\\Adjustment_"
   + RIGHT("0" + (DT_STR, 2, 1252) DATEPART("dd" , GETDATE()), 2)
   + "_"
   + RIGHT("0" + (DT_STR, 2, 1252) DATEPART("mm" , GETDATE()), 2)
   + "_"
   + (DT_STR, 4, 1252) DATEPART("yyyy" , GETDATE())
   + ".csv"

我怎么能调整这个,所以我得到的文件名是 Adjustment_09_02_2019_16_55_02.csv 所以时间也在文件名的末尾?

标签: sql-serverssis

解决方案


我认为您已经非常接近预期的结果。时间部分可以通过以下方式生成:

+ "_"
+ 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) 

因此完整的表达式可以类似于:

@[User::DestinationDirectory] 
+ "\\Adjustment_"
+ RIGHT("0" + (DT_STR, 2, 1252) DATEPART("dd" , GETDATE()), 2)
+ "_"
+ RIGHT("0" + (DT_STR, 2, 1252) DATEPART("mm" , GETDATE()), 2)
+ "_"
+ (DT_STR, 4, 1252) DATEPART("yyyy" , 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)
+ ".csv"

推荐阅读