SSIS合并按最近时间

时间:2015-11-18 04:00:05

标签: datetime join ssis etl

我有多个数据源。经过多次转型后,我结束了这样的事情:

Datasource1

StationId: Id integer
OriginDate: Datetime (i.e. 2011-04-25 16:53:26.623)

我已将此组件转换为将年份,月份和日期分开,这样做:

(DT_I2)YEAR(OriginDate)

和使用MONTH(OriginDate)和Day的月份相同。 另一方面,我也有时间使用(DT_DBTIME)OriginDate

我进行了这些转换,因为我认为它们对我的问题可能有用,但不确定。 此数据源来自MSSQL

Datasource2

CurrentDate (i.e. 01/04/2011)
StationId: Integer
Hour (i.e. 01:59)

请注意,在此ds中,这两个字段都是varchar。 此数据源来自MySQL

我需要的是通过相同的stationId(简单)和最接近的日期(不容易)加入这两个数据集。我应该为Datasource1中的每一行获取其他数据源中最接近时间的行,我的意思是,对于相同的Date,最接近的时间。这是因为datasource2是给定时间的度量,datasource1是给定时间的事件,我需要关联它们。

我怎样才能做到这一点? Merge join component仅允许通过equals表达式连接。如果可能的话,我想避免分期。

我考虑将两个数据源的小时和分钟分开并进行比较,并比较日期和stationId中的相等性,但我不确定如何完成第一部分。

我对此采取了哪种方法。

0 个答案:

没有答案