Ssis 为什么在验证datetime字段时在派生转换中出错?

Ssis 为什么在验证datetime字段时在派生转换中出错?,ssis,Ssis,我有一个日期时间字段中带有0000-00-00的源代码。当我尝试将其复制到SQL目标时,会弹出错误 我正在尝试一个派生列来修复它。当它是0000-00-00时,将其更改为NULL。 这是照片 为什么不起作用?我已尝试将0000-00-00 00:00:00更改为0000-00-00,但仍然无效。您应该在表达式中使用NULL(DT_DBTIMESTAMP)而不是NULL。说明: 请尝试以下表达式来解决此问题。由于传入字段是DATETIME数据类型,并且您希望忽略其中包含零的所有值。您可以找到给定

我有一个日期时间字段中带有
0000-00-00
的源代码。当我尝试将其复制到SQL目标时,会弹出错误

我正在尝试一个派生列来修复它。当它是
0000-00-00
时,将其更改为
NULL
。 这是照片

为什么不起作用?我已尝试将
0000-00-00 00:00:00
更改为
0000-00-00
,但仍然无效。

您应该在表达式中使用NULL(DT_DBTIMESTAMP)而不是NULL。

说明: 请尝试以下表达式来解决此问题。由于传入字段是
DATETIME
数据类型,并且您希望忽略其中包含零的所有值。您可以找到给定日期时间值的日期,并检查它是否为零。如果为零,则需要使用NULL函数
NULL(DT_DBTIMESTAMP)
,否则只需使用包含有效日期和时间值的字段名即可。然后,type将整个表达式转换为数据类型
DT_DBTIMESTAMP

表达方式: (DT_DBTIMESTAMP)(天([FechahorCorteAgente])==0?空(DT_DBTIMESTAMP:[FechahorCorteAgente])


你的“数据类型”读时间戳,也许应该是DateTime?@MarcBernier谢谢你的提示。我怎样才能改变这一点?它不会让我点击它。我应该在表达式字段中强制它吗?非常感谢,就是这样。谢谢你的解释,现在我明白为什么它不起作用了。