SSIS OLE DB命令日期参数格式

时间:2016-02-12 04:58:40

标签: sql-server datetime ssis

我正在使用OLE DB Command任务来执行INSERT语句。 INSERT语句接受由?表示的许多参数。 SSIS将SQL Server DATETIME列映射到DT_DBTIMESTAMP类型的参数,我认为没问题。

INSERT查询失败,因为DT_DBTIMESTAMP以格式为'yyyy-MM-dd hh:mm:ss'的字符串传递给SQL Server,但数据库期望'dd / MM / yyyy hh:nn:ss'。该错误是由于SQL Server错误地处理'day'和'month'部分。

我已经看到了使用派生列等对SSIS格式化日期的问题的回答但是我已经有了DT_DBTIMESTAMP值(它没有格式!)并且当SSIS将参数值设置为字符串时出现问题,而我无法看到如何控制格式,因此输出'dd / MM / yyyy hh:mm:ss'。

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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

运行时会出现什么错误? 解决这个问题的唯一方法,我看到在读取源文件和在SQL表中写入之间将DT_DBTIMESTAMP转换为DATETIME。