我正在使用 SSIS 2005 将 .csv 文件中的数据读取到 SQL Server 2005 数据库中。我为 .csv 使用平面文件连接管理器,为结果行使用 OLEDB 连接管理器。
.csv 文件包含一个字段,该字段是英国格式的日期 (dd/mm/yyyy),例如 7/3/2011 表示 2011 年 3 月 7 日。然后将此列映射到等效项SQL Server 数据库中的日期时间字段。
我面临的问题是,虽然在开发机器上一切正常,但在生产环境中使用时,日期会在插入时更改为美国 (mm/dd/yyyy) 格式(如果有效)进入 SQL Server。是否有某个地方可以为目标日期时间字段指定所需的区域/格式(在本例中为英国),可能是在包中的某个地方或生产服务器本身的某些设置?
提前致谢, 蒂姆
最佳答案
您可以在平面文件连接管理器编辑器中设置区域设置,或在连接的“属性”框中设置 LocaleID(相同)。将其设置为“英语(英国)”将正确解释日期,因为 SSIS 使用包或数据流中的区域设置,而不是操作系统区域设置。
请注意,您必须在源而非目标处设置格式:日期时间是 MSSQL 中的二进制格式,因此日期不会以特定于语言环境的格式在内部存储。
关于sql-server - SSIS 将 .csv 日期字段转换为生产 SQL 服务器上的不正确格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5220726/