SSIS:在两个地方使用时间的变量表达式
SSIS: variable expression using time in two places
我有一个变量表达式,它附加了一些日期部分以在两个单独的任务中用作文件名。
但是当第二个任务命中时,时间已经改变,变量也随之改变。基本上,我在一个文件夹中创建一个文件用于 FTP 导出。但是当 FTP 任务去拾取它时,它是 'not there' 因为自文件初始创建以来时间已经改变并且 FTP 任务试图拾取它。
平面文件 name
和 FTP LocalPath
都使用变量 'FilePath' 即:
"C:\WFSDEV_WSD_SHIP_FROM_STORE_" + (DT_WSTR,4)DATEPART("yyyy",GetDate()) +
RIGHT("0" + (DT_WSTR,2)DATEPART("mm",GetDate()) ,2) +
RIGHT("0" + (DT_WSTR,2)DATEPART("dd",GetDate()),2) +
RIGHT("0" + (DT_WSTR,2)DATEPART("hh",GetDate()),2) +
RIGHT("0" + (DT_WSTR,2)DATEPART("mm",GetDate()),2) +
RIGHT("0" + (DT_WSTR,2)DATEPART()),2) +
".VD01"
有没有办法在包的开头设置这个变量并从那里不加改变地使用它?
不要使用 GETDATE()
,因为每次检查时都会对其进行评估。
相反,选择一个在 SSIS 包期间保持不变但在包开始时更新的值。我的偏好是 @[System::StartTime]
但有些人可能更喜欢 @[System::ContainerStartTime]
前者在包开始执行时设置,另一个在每个容器内重置(ForEach 循环等)
我有一个变量表达式,它附加了一些日期部分以在两个单独的任务中用作文件名。
但是当第二个任务命中时,时间已经改变,变量也随之改变。基本上,我在一个文件夹中创建一个文件用于 FTP 导出。但是当 FTP 任务去拾取它时,它是 'not there' 因为自文件初始创建以来时间已经改变并且 FTP 任务试图拾取它。
平面文件 name
和 FTP LocalPath
都使用变量 'FilePath' 即:
"C:\WFSDEV_WSD_SHIP_FROM_STORE_" + (DT_WSTR,4)DATEPART("yyyy",GetDate()) +
RIGHT("0" + (DT_WSTR,2)DATEPART("mm",GetDate()) ,2) +
RIGHT("0" + (DT_WSTR,2)DATEPART("dd",GetDate()),2) +
RIGHT("0" + (DT_WSTR,2)DATEPART("hh",GetDate()),2) +
RIGHT("0" + (DT_WSTR,2)DATEPART("mm",GetDate()),2) +
RIGHT("0" + (DT_WSTR,2)DATEPART()),2) +
".VD01"
有没有办法在包的开头设置这个变量并从那里不加改变地使用它?
不要使用 GETDATE()
,因为每次检查时都会对其进行评估。
相反,选择一个在 SSIS 包期间保持不变但在包开始时更新的值。我的偏好是 @[System::StartTime]
但有些人可能更喜欢 @[System::ContainerStartTime]
前者在包开始执行时设置,另一个在每个容器内重置(ForEach 循环等)