SSIS(KingswaySoft)迁移SQL Server UTC日期至CRM时差问题求助
SSIS(KingswaySoft)迁移UTC日期到CRM的时间偏移问题解决方案
问题根源
CRM(如Dynamics 365)默认会根据组织/用户时区设置转换日期时间的显示值,若迁移时未明确UTC处理规则,源端的UTC日期会被错误转换,导致提前4-5小时。
解决步骤
1. 配置KingswaySoft CRM组件的字段属性
在CRM Destination或CRM Upsert组件的字段映射编辑器中:
- 选中目标日期字段,打开属性设置面板
- 将DateTime Behavior设为
UTC(部分CRM版本显示为TimeZoneIndependent),确保CRM直接存储原始UTC值,不做时区转换 - 若源字段是
datetime类型,需在属性中标记为UTC来源;若是datetimeoffset类型,直接映射即可
2. 源端SQL查询显式声明UTC格式(可选)
如果源表日期是datetime而非datetimeoffset,在数据源查询中转换为带UTC偏移的格式,避免组件误判:
SELECT CONVERT(datetimeoffset, YourDateColumn, 127) AS UTCDate FROM YourSourceTable
3. 检查CRM组织时区设置
登录CRM后台,进入设置 > 系统 > 时区:
- 确认组织默认时区配置,同时确保目标字段的时区行为为“UTC”,彻底避免自动转换
4. 用Derived Column组件强制处理时区
若仍有偏差,在数据流中添加Derived Column组件,使用KingswaySoft内置函数确保UTC标识:
// 标记日期为UTC类型,阻止自动转换 KingswaySoft::DateTimeSpecifyKind(YourDateColumn, DateTimeKind.Utc)
如果源数据被误识别为本地时间,可转换为UTC:
KingswaySoft::DateTimeToUtc(YourDateColumn)
验证方式
迁移完成后,要么直接查询CRM数据库查看字段原始存储值,要么在CRM中切换到“UTC时间”视图,确认日期与SQL Server源数据完全一致。
内容的提问来源于stack exchange,提问作者Ganapathe
相关产品推荐
相关产品推荐

