目标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
DestColumn 479 874 0 1190 1502
但我需要获取Valyyyymmdd并执行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)))
答案 0 :(得分:0)
对我来说,以下工作。
Dt == "00000000" ? (DT_DATE)GETDATE() : (DT_DATE)(SUBSTRING(Dt,1,4) + "-" + SUBSTRING(Dt,5,2) + "-" + SUBSTRING(Dt,7,2))
[Dt]取代[DestColumn]
答案 1 :(得分:0)
DATEDIFF("d",([Valyyyymmdd] == "00000000" ? (DT_DBDATE)GETDATE() : (DT_DBDATE)(SUBSTRING([Valyyyymmdd ],1,4) + "-" + SUBSTRING([Valyyyymmdd ],5,2) + "-" + SUBSTRING(@[Valyyyymmdd ],7,2))),GETDATE())