0

我正在尝试使用 Azure 数据工厂将 CSV 插入 Azure SQL 表。在我检查结果之前,一切似乎都很好。其中一列是可为空的日期。CSV 包含这样的值1/2/2020 12:00:00 AM。数据流静默插入 aNULL而不是抛出错误,因为它不喜欢输入。那么如何让我的数据流正确地将字符串转换为日期时间,然后在将来出现此类问题时出错?我真的不想要无声的失败和糟糕的数据。

4

1 回答 1

1

空值是由于 ADF 中的日期格式不兼容。您需要进行日期格式转换。

您的源日期格式是这样的MM/dd/yyyy HH:mm:ss吗?
如果是这样,您可以使用派生列并添加表达式toString(toTimestamp(<Your_Column_Name>,'MM/dd/yyyy HH:mm:ss'),'yyyy-MM-dd HH:mm:SS')以将此列格式化为字符串。它解决了NULL价值。当然你可以选择你想要的日期格式。

我做了如下测试:

  1. 我的数据源来自一个 csv 文件,它EmpDate是一个像你一样的日期类型,最后一行包含一个空值。 在此处输入图像描述

  2. toString(toTimestamp(EmpDate,'MM/dd/yyyy HH:mm:ss'),'yyyy-MM-dd HH:mm:SS')然后我在派生列活动中添加表达式。在这里您可以选择所需的日期格式。 在此处输入图像描述

3.根据 Mark Kromer 的建议,我直接在 Derived Column 之后添加条件拆分并检查 isNull(EmpDate)。这里我使用not(isNull(EmpDate))表达式。 在此处输入图像描述

  1. 最后,如果EmpDate包含 null 值,它将转到 sink2 否则转到 sink1。 在此处输入图像描述 该行包含空值: 在此处输入图像描述
于 2020-08-28T02:31:12.473 回答