Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 SSIS优势时间戳到SQL日期时间_Sql Server 2005_Ssis_Data Migration_Advantage Database Server - Fatal编程技术网

Sql server 2005 SSIS优势时间戳到SQL日期时间

Sql server 2005 SSIS优势时间戳到SQL日期时间,sql-server-2005,ssis,data-migration,advantage-database-server,Sql Server 2005,Ssis,Data Migration,Advantage Database Server,我刚开始使用SSIS 2008,目前正在将数据从旧Advantage数据库迁移到SQL Server 2005。我使用带有源和目标的数据流对象设置SSIS包。复制大多数列效果很好,但当我尝试将Advantage Timestamp列复制到DateTime字段时,会出现许多错误。我相信它们都是溢出错误,这在Advantage如何存储时间戳信息方面是可以理解的。我的问题是,在SQLServer2005中将此列转换为正确的DATETIME字段的最佳方式是什么 稍微思考一下,我觉得我可以将Advanta

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

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


谢谢你的帮助和建议

在数据流中,您可以使用派生列转换,您可以尝试将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])

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