【问题标题】:SSIS OLE DB Command Date Parameter FormatSSIS OLE DB 命令日期参数格式
【发布时间】:2016-05-23 03:50:59
【问题描述】:

我正在使用 OLE DB 命令任务来执行 INSERT 语句。 INSERT 语句接受多个由 ? 表示的参数。 SSIS 将 SQL Server DATETIME 列映射到 DT_DBTIMESTAMP 类型的参数,我认为这很好。

插入查询失败,因为 DT_DBTIMESTAMP 作为格式为“yyyy-MM-dd hh:mm:ss”的字符串传递给 SQL Server,但数据库需要“dd/MM/yyyy hh:nn:ss”。该错误是由于 SQL Server 以错误的方式处理“日”和“月”部分造成的。

我已经看到有关使用派生列等在 SSIS 中格式化日期的问题的回复,但我已经有了 DT_DBTIMESTAMP 值(它没有格式!)并且当 SSIS 将参数值设置为字符串时会出现问题,我看不到如何控制格式,所以它以 'dd/MM/yyyy hh:mm:ss' 输出。

我已尝试设置 LocaleID 和语言,但似乎仍然没有任何区别。一个有趣的观察结果是,通过 Visual Studio 运行时不会发生此错误,仅来自 SQL 代理作业。

非常感谢任何帮助。

【问题讨论】:

  • 您要插入的列的数据类型是什么?您要映射到参数的 SSIS 变量的数据类型是什么?
  • 您收到的错误信息是什么?它也将有助于发布插入查询。我知道你觉得你已经孤立了问题,但通常如果你花时间详细说明问题,答案就会变得显而易见

标签: sql-server datetime ssis


【解决方案1】:

运行此程序时遇到什么错误? 解决这个问题的唯一方法是在读取源文件和写入 SQL 表之间将 DT_DBTIMESTAMP 转换为 DATETIME。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多