1

我是使用 SSIS 2008 的新手,目前正在将数据从旧的 Advantage 数据库迁移到 SQL Server 2005。我使用带有源和目标的数据流对象设置 SSIS 包。复制大部分列效果很好,但是当我尝试将 Advantage Timestamp 列复制到 DateTime 字段时,我得到了很多错误。我相信它们都是溢出错误,这在Advantage如何存储时间戳信息方面是可以理解的。我的问题是将此列转换为 SQL Server 2005 中正确的 DATETIME 字段的最佳方法是什么?

稍微思考了一下,我觉得我可以将 Advantage TimeStamp 列复制到 varchar 列中,然后运行一个 sql 脚本来为我进行转换。我想知道是否有更优雅的方法,或者这类问题的正常解决方案是什么。

感谢您的所有帮助和建议!

4

2 回答 2

2

在您的数据流中,您可以使用派生列转换,您可以尝试将 Advantage Timestamp 转换为 SQL Server DATETIME (DT_DBTIMESTAMP) 数据类型(请注意,这不是 SQL Server TIMESTAMP 数据类型。)在派生列转换中添加一个新的列并输入以下表达式以转换数据类型。

(DT_DBTIMESTAMP) [MyDate]

如果失败,那么您可以将类型转换为字符串 (DT_STR, <>, <>),然后使用字符串函数操作字符串,然后在单个表达式中将类型转换为 DT_DBTIMESTAMP。

(DT_DBTIMESTAMP) (...string functions...(DT_STR, 20, 1252)[MyDate])
于 2011-01-13T19:04:52.877 回答
0

Timestamp是一种数据类型,与日期或时间数据无关。

于 2011-02-02T13:31:51.813 回答