Ssis yyyymmdd-getdate重新运行int
目标int值是[columndate]-getdateSsis 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
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())