Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ssis中获取带有时间戳的文件名_Ssis - Fatal编程技术网

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

如何在ssis中获取带有时间戳的文件名,ssis,Ssis,我有一个输入文件,必须每天加载到我的表中。我收到以下格式的文件sample\u 20120518\u 160754.CSV。时间戳可能会有所不同,它不是当前时间戳 我使用表达式来获取文件名和日期,但如何获取文件的时间戳呢 这是我用来获取文件和日期的表达式 "sample_" + RIGHT("0" + (DT_STR,4,1252)DATEPART("yyyy", (DT_DATE)@[User::p_varAsOfDate]), 4) + RIGHT("0" + (DT_STR, 2, 125

我有一个输入文件,必须每天加载到我的表中。我收到以下格式的文件sample\u 20120518\u 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"  
这个表达式产生结果


示例\u 2012145\uu.CSV现在我还需要文件的时间戳。

下面的表达式将为您提供日期部分+时间部分。您可以在两者之间添加额外的分隔符,以实现所需的格式

(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) + 

您可以编辑上述表达式并使用您选择的另一个变量。我选择集装箱起航时间是因为方便

下面是一个表达式,它将为您提供日期部分+时间部分。您可以在两者之间添加额外的分隔符,以实现所需的格式

(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) + 

您可以编辑上述表达式并使用您选择的另一个变量。我选择集装箱起航时间是因为方便

@[User::miFilePath]+“AnyName”+“+”(dtu WSTR,04)年(GETDATE())+(MONTH(GETDATE())>=10(DT_WSTR,02)月(GETDATE()):“0”+(dtu WSTR,02)月(GETDATE())+(DAY(GETDATE())>=10(DT_WSTR,02)天(GETDATE()):“0”+(DT_WSTR,02)天(GETDATE())+(GETDATE())+(GETDATE()):“0”+(DT,125r,02)天(GETDATE()))+(GETDATE())+(GETDATE())+(GETDATE())+(GETDATE())+(GETDATE())+)+(GETDATE())+)+(GETDATE())+)DATEPART(“mi”,GETDATE()),2)+右(“0”+(DT_STR,21252)DATEPART(“ss”,GETDATE()),2)+“.txt”
@[User::miFilePath]+“AnyName”+“(DT_WSTR,04)YEAR(GETDATE())+(MONTH(GETDATE())>=10(dtwstu,02)MONTH(GETDATE()):“0”+(dtwstr,02)MONTH(GETDATE()):(GETDATE())=10,02)DAY(dtu())(GETDATE())+“+”右(“0”+(DT_STR,21252)日期部分(“hh”,GETDATE()),2)+右(“0”+(DT_STR,21252)日期部分(“mi”,GETDATE()),2)+右(“0”+(DT_STR,21252)日期部分(“ss”,GETDATE()),2)+.txt”

你好,拉吉夫,我试图使用这个表达式,但这个表达式没有当前的时间戳。我可能在早上6点收到文件,下午2点加载文件。因此,在这种情况下,它不起作用。你到底想实现什么?你想从CSV文件中提取数据吗?你为什么要构造表达式以跟踪日期和时间?示例_2012145_2145.CSV看起来也不正确,“2012145”没有任何意义。我每天都收到文件,我的文件名是sample_yyyddmm_hhmmss.CSV格式。因此我将Asofdate作为输入变量传递。这是我用来获取文件名“sample_2145”+right(“0”+(DT_STR,41252)DATEPART(“yyyy”)的表达式,(DT_日期)@[User::p_varAsOfDate]),4)+右(“0”+(DT_STR,21252)日期部分(“mm”,(DT_日期)@[User::p_varAsOfDate]),2)+(DT_STR,21252)日期部分(“dd”,(DT_日期)@[User::p_varAsOfDate])+“.CSV”我仍然不明白您为什么要创建此表达式。是否使用此表达式来动态设置源组件中的文件名?如果是,有更好的方法来处理此问题。您只需使用GETDATE()我尝试使用这个表达式来代替系统变量Hi Rajiv,但是这个表达式没有当前的时间戳。我可能在早上6点收到文件,下午2点加载文件。所以在这种情况下它不起作用。你到底想实现什么?你想从CSV文件中提取数据吗?你到底为什么要构建用于提取日期和时间的表达式?示例_2012145_.CSV看起来也不正确,“2012145”没有任何意义。我每天都收到文件,文件名为sample_yyyddm_hhmmss.CSV格式。因此我将Asofdate作为输入变量传递。这是我用来获取文件名“sample_”+right(“0”+(DT_STR,41252)DATEPART的表达式(“yyyy”,“DT_DATE”@[User::p_varAsOfDate]),4)+右(“0”+(dtu STR,21252)日期部分(“mm”,“dtu DATE”)@[User::p_varAsOfDate]),2)+(dtu STR,21252)日期部分(“dd”,“DT_DATE”@[User::p_varAsOfDate])+“.CSV”我仍然不明白为什么要创建此表达式。是否使用此表达式来动态设置源组件中的文件名?如果是,有更好的方法来处理此问题。您可以简单地使用GETDATE()而不是系统变量