Fro*_*ode 6 azure azure-data-factory-2
这已解决,解决方案在底部找到。
我有一个执行数据流的 Azure DataFactory V2 管道。
Azure Sql 源表有一个 Date not null 列 DateReported。这是从外部来源导入的。其中空值为 1899-01-01。
目标 Sql 表具有相同的字段 DateReported 但日期为 null
我在数据流中使用派生列来清理数据。我想在日期为 1899-01-01 时插入 null
我的派生列函数是这样的
iif(!(year(DateReported) == 1899 || year(DateReported) == 1753)
, DateReported
, null()
)
Run Code Online (Sandbox Code Playgroud)
这给了我错误“表达式应该返回与先前表达式相同类型的‘时间戳’”。
如果我将 iif 反转为这个
iif((year(DateReported) == 1899 || year(DateReported) == 1753)
, null()
, DateReported
)
Run Code Online (Sandbox Code Playgroud)
我收到错误“表达式应该返回与先前表达式相同的类型‘空’”
我可以像这样从源代码在 sql 中修复此问题
Select ...
DateReported2 =
CASE
WHEN DateReported is null THEN DateReported
WHEN YEAR(DateReported) = 1899 THEN NULL
ELSE DateReported
End
...
Run Code Online (Sandbox Code Playgroud)
但这很混乱,因为我所有的其他逻辑都在数据流中。
如何创建一个可以为空的时间戳的派生列,如 C# DateTime?或 SSIS NULL(DT_DATE)?
解决方案:
case(year(DateReported) != 1899, DateReported)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2773 次 |
| 最近记录: |