DataFactory将字符串(年份为2位数字)转换为日期

时间:2020-10-20 10:57:27

标签: azure datetime azure-data-factory azure-data-factory-2 azure-data-factory-pipeline

我目前正在Azure Data Factory中使用一组CSV日志文件,我需要对其进行处理并输入到SQL表中。

问题是某些列包含时间戳,其中年份用2位数字表示(而不是完整的4位数字的年份)。 例如01/03/17 22:10:33的日期格式为MM/dd/yy HH:mm:ss

如何将其转换为日期或将'20'添加到年份中? (例如01/03/17 22:10:33会变成01/03/2017 22:10:33)。这在代码中非常简单,但是我不确定如何在Azure数据工厂的数据流中实现它。

编辑:如@ HimanshuSinha-msft所述,必须先删除撇号才能解析。我向数据流添加了以下额外步骤:toTimestamp(substring({Column Name},2,length({Column Name})-1), 'MM/dd/yy hh:mm:ss'),它起作用了!

2 个答案:

答案 0 :(得分:0)

ADF数据流完全支持Java标准日期/时间格式化程序。在您的情况下,您可以按原样转换toTimestamp()以使日期/时间组件对齐,然后按如下所示转换为您希望通过toString()实现的输出字符串:

toString(toTimestamp('01 / 03/17 22:10:33','MM / dd / yy HH:mm:ss'),'MM / dd / yyyy HH:mm:ss')

更多详细信息:

https://docs.microsoft.com/en-us/azure/data-factory/data-flow-expression-functions#totimestamp

https://docs.microsoft.com/en-us/azure/data-factory/concepts-data-flow-expression-builder#convert-to-dates-or-timestamps

答案 1 :(得分:0)

这对我来说是个障碍,但试试这个-

  1. 去下沉
  2. 映射
  3. 点击输出格式
  4. 选择您希望将数据存储到接收器中的数据格式或时间格式。

选择您想要的任何已定义格式。