将datetime2存储在ssis变量中

时间:2018-12-28 07:57:34

标签: sql-server datetime ssis

我正在使用SQL Server 2012 Enterprise。我有一个必须在SSIS变量中存储数据类型为DATETIME2的数据的要求。不幸的是,SSIS变量没有该数据类型。

如果我将其存储到datetime数据类型中,则会丢失信息。谁能提供解决方法?

PS:我的源系统也是SQL Server 2012,我正在从具有datetime2数据类型的列中读取数据。

1 个答案:

答案 0 :(得分:1)

至少在当前,SSIS存在一个“已知”的不足,因为变量值类型DateTime仅具有第二个精度。实际上与datetime2(0)相同。因此,如果您需要存储比秒更精确的信息,例如使用datetime并且1/300秒很重要,或者如果使用datetime2精度为1或此外,值类型DateTime不会满足您的目标。

因此,有两个不同的选项将值存储为String或数字值。但是,这确实有其自身的问题。最重要的是,这些数据类型都不是日期和时间数据类型。

因此,这取决于您的目标是什么。我很可能会使用String数据类型,并确保它具有ISO格式('yyyy-MM-ddThh:mm:ss.nnnnnnn')。如果您随后使用的是T-SQL任务之类的方法,则可以按常规将变量传递给任务,数据引擎会将文字字符串解释为datetime2(7)(或您使用的文字精度)。