在处理来自 SQL Server 的“时间戳”数据类型时,我在 SSIS 中进行正确的数据转换时遇到问题。
我有一张使用 SSIS 暂存的表。在我的数据流任务 (DFT) 顶部的源选择中,它看起来像这样:
SELECT
[SourceColumn1Timestamp] = [SourceColum1Timestamp]
, [SourceColumn2] = [SourceColumn2]
, [SourceColumn3] = [SourceColumn3]
, [SourceColumn4] = [SourceColumn4]
FROM [dbo].[Table1]
我想将 [SourceColumn1Timestamp] 转换为 Bigint,但在 SSIS 内部使用数据流任务中的数据转换组件。像这样:
因此,作为“DT_BYTES”SSIS 数据类型的输入列“timestamp”被转换为 DT_I8。
然而结果与我的预期完全不同。与我在 SQL 中进行转换时得到的结果不同,将 DFT 中的源选择调整为:
SELECT
[SourceColum1Timestamp] = [SourceColum1Timestamp]
, [SourceColumn2] = [SourceColumn2]
, [SourceColumn3] = [SourceColumn3]
, [SourceColumn4] = [SourceColumn4]
, [SourceColum1Timestamp_BIGINT] = CONVERT(BIGINT, [SourceColum1Timestamp]) -- I would like to avoid this
FROM [dbo].[Table1]
怎么来的?