sql-server – SSIS 2012日期格式dmy vs mdy
有三个SQL Server:
> PROD(2008 R2) 我正在将大量SSIS包从PROD迁移到NEW_TEST和NEW_PROD服务器. 源数据来自平面文本文件 源DATE数据的格式为dd / mm / yyyy(即2015年11月5日存储为05/11/2015). 在SSIS中,DATE源列(文本文件)的定义是Unicode字符串(DT_WSTR),目标列(在DB表中)数据类型是DATETIME,因此在从文本文件读取数据并将其写入到文本文件之间进行类型转换.数据库表. 当我在PROD(旧)服务器上运行包时,数据被正确加载. 当我在NEW_TEST服务器上运行相同(但升级到2012)的包时,数据加载也正常. 但是,当我在NEW_PROD服务器上运行包时,数据加载不正确(即05/11/2015加载为2015年5月11日而不是2015年11月5日).因此,似乎NEW_PROD服务器以某种方式使用US(MDY)设置转换UK(DMY)源日期字符串. 花了很多时间试图了解发生了什么,这就是我发现的: > NEW_PROD服务器的排序规则设置为“SQL_Latin1_General_CP1_CI_AS” 我试图弄清楚如何使用调度程序在NEW_PROD服务器上正确加载数据,而不需要: >使用正确的排序规则重建其主数据库(不切实际 – 数据库太多,数据太多) 所以,长话短说,我试图了解该过程的哪个元素负责将源字符串解释为日期以及如何使其使用DMY而不是MDY,而不管错误的整理设置如何.我以为我得到了它,但是上面列表中的第7项让我感到困惑. 任何最微弱的暗示? 解决方法在SQL Server 2012中处理日期解释问题时,有4个地方需要检查:> db的排序规则(最初从服务器排序规则继承) 它们之间可能存在优先级,但我只是将它们设置为相同的值,问题现在已经消失. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |