sql-server - SSIS 将 .csv 日期字段转换为生产 SQL 服务器上的不正确格式

标签 sql-server date ssis format package

我正在使用 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/

相关文章:

sql - 当表列相同时 EXCEPT 执行速度是否比 JOIN 更快

java - 如何比较 java.sql.Timestamp 和 java.util.Date

visual-studio - 如何为 VS Integration Services 项目中的每个包设置保护级别?

c# - 如何访问数据流脚本组件中现有的 ADO.NET 连接管理器

c# - SSIS获取Execute Sql Task结果集对象

c# - XslCompiledTransform和自定义XmlUrlResolver:“具有相同键的条目已存在”

sql - 事务中 GO 命令的奇怪行为

sql-server - 如何向我的 EF4 模型添加计算列?

swift - 将时间字符串转换为时间间隔字符串的最佳方法

r - 两个日期之间的月数