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 yyyymmdd-getdate重新运行int_Ssis - Fatal编程技术网

Ssis yyyymmdd-getdate重新运行int

Ssis yyyymmdd-getdate重新运行int,ssis,Ssis,目标int值是[columndate]-getdate Create table Source_Table ( [Valyyyymmdd] [nvarchar](24) NULL ) Create table Destination_Table ( [DestColumn] [int] NULL ) Insert into Source_Table (Valyyyymmdd) values (20130503),(20120403),(00000000),(20110523),(201

目标int值是[columndate]-getdate

Create table Source_Table (  [Valyyyymmdd] [nvarchar](24) NULL  )
Create table Destination_Table ( [DestColumn]  [int] NULL  )

Insert into Source_Table (Valyyyymmdd) values
(20130503),(20120403),(00000000),(20110523),(20100715)
我想得到getdate()的区别 因此,我在源代码中使用了下面的SQL查询 预期结果SQL

 SELECT DATEDIFF(DAY, CASE WHEN ISDATE(Valyyyymmdd) = 0 THEN getdate() ELSE Valyyyymmdd END ,   getdate()) as DestColumn 
 FROM dbo.Source_Table
去目的地柱 479 874 0 1190 1502

但我需要获取Valyyyymmdd和do ssis派生列,以获取导致int值的日期差

我试着如下

((DT_WSTR,24)DestColumn == "00000000" ? GETDATE() : (DT_DBDATE)(SUBSTRING((DT_WSTR,10)DestColumn,1,4) + "-" + SUBSTRING((DT_WSTR,10)DestColumn,5,2) + "-" + SUBSTRING((DT_WSTR,10)DestColumn,7,2)))

对我来说,下面的方法奏效了

Dt == "00000000" ? (DT_DATE)GETDATE() : (DT_DATE)(SUBSTRING(Dt,1,4) + "-" + SUBSTRING(Dt,5,2) + "-" + SUBSTRING(Dt,7,2))

[Dt]代替了[DestColumn]

你能给出一个示例结果集吗?我需要表达式来返回Int,这是我在上面使用SQL查询实现的。这是怎么回事?源代码中有一个日期字段,我需要在移动到目标表时将日期差异输入到目标表中,同时考虑到使用SSISdo的今天的日期,你的意思是什么,我必须将其粘贴到派生列计算中是的,在您的数据流中,拖动一个派生列并从源连接它。是的,我已经完成了。我正在把结果作为日期。。但我的预期结果是int DEST列479 874 0 1190 1502我已使用示例和示例预期结果编辑了我的查询。请检查一下
DATEDIFF("d",([Valyyyymmdd] == "00000000" ? (DT_DBDATE)GETDATE() : (DT_DBDATE)(SUBSTRING([Valyyyymmdd ],1,4) + "-" + SUBSTRING([Valyyyymmdd ],5,2) + "-" + SUBSTRING(@[Valyyyymmdd ],7,2))),GETDATE())