【问题标题】:Date Format in CSV changed when SSIS package run on Server当 SSIS 包在服务器上运行时,CSV 中的日期格式发生了变化
【发布时间】:2018-04-02 13:56:23
【问题描述】:

具有 2 个任务的数据流,导入平面文件(源)和数据库(目标)。我有一个源(csv Flate 文件),[运行日期] 的数据类型是文件格式的 DT_STR,它直接进入数据库表,其中 [运行日期] 列是 smalldatetime,sql server 2000。

现在我的源文件中有一个 [运行日期] 列,例如 05/04/2018。

当我在本地运行 SSIS 包时,我在 [运行日期] 列的导入表中得到 05/04/2018。当我在服务器上运行它时,我得到 04/05/2018 作为 [运行日期]。这是错误的。如何确保 SSIS 在服务器上运行包时进行正确的转换?我无法更改服务器设置或区域设置。

【问题讨论】:

  • 看看 Set DateFormat MDY 或 Set DateFormat DMY ...我对您想要的日期格式有点困惑
  • 05/04/2018 是正确的日期格式
  • MDY 或 DMY 还是模棱两可?
  • 日期格式是在 sql server 上定义的,与本地机器不同。在 sql server 2008 及更高版本中,您可以使用 SET DATEFORMAT。当您使用 sql server 2000 - 您应该明确转换日期格式。 docs.microsoft.com/en-us/sql/t-sql/functions/…
  • DMY 。这里的问题是,当 SSIS 将字符串转换为 DATE 以放入 Database Table 时,它​​正在决定字符串应该是什么。如果服务器语言环境是美国,那么它做错了。可以覆盖 SSIS 设置吗?

标签: sql-server ssis-2008


【解决方案1】:

这个问题可以通过设置操作系统的日期格式来解决。在您的服务器上,转到控制面板并将日期时间格式更改为您的偏好。这应该可以解决问题。

【讨论】:

  • 这行得通,但它是一个带有其他数据库和其他 SSIS 包的服务器,所以不是我想要的选项。
  • 据我记得你可以在包属性中调整它。查找属性“LocaleID”
  • 看看这个链接。它应该是您正在寻找的选项。 social.msdn.microsoft.com/Forums/sqlserver/en-US/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-18
  • 2011-07-10
  • 1970-01-01
  • 2013-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多