我正在使用SQL Server 2012 Enterprise
。我有一个必须在SSIS变量中存储数据类型为DATETIME2
的数据的要求。不幸的是,SSIS变量没有该数据类型。
如果我将其存储到datetime
数据类型中,则会丢失信息。谁能提供解决方法?
PS:我的源系统也是SQL Server 2012,我正在从具有datetime2数据类型的列中读取数据。
答案 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)
(或您使用的文字精度)。>