【发布时间】: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