问题描述
我有一个列 ABC ,其中时间戳的格式为dd / MM / yyyy HH:mm:SS(11/04/2020 1:17:40)。我想创建另一个列 ABC_NEW ,其数据与旧列相同,但时间戳记为'yyyy-MM-dd HH:mm:SS'。我尝试使用azure数据工厂派生列进行操作
toTimestamp(column_name,'yyyy-MM-dd HH:mm:SS')但没有用,它将作为NULL出现。有人可以帮忙吗?
解决方法
这是一个两步过程。您首先需要告诉ADF时间戳列中的每个字段代表什么,然后您可以使用字符串转换将时间戳转换为所需的输出字符串:
toString(toTimestamp('11 / 04/2020 1:17:40','MM / dd / yyyy HH:mm:ss'),'yyyy-MM-dd HH:mm:SS')
, Data Factory不支持日期格式“ dd / mm / yyyy”,我们无法将其直接转换为“ YYYY-MM-DD”。
我使用 DerivedColumn 从原始列 DateTime 生成一个新列 ABC_NEW 并输入以下表达式:
toTimestamp(concat(split(substring(DateTime,1,10),'/')[3],'-',split(substring(DateTime,'/')[2],'/')[1],substring(DateTime,11,length(DateTime))))
结果显示:
,这对我来说是个障碍,但试试这个-
- 去下沉
- 映射
- 点击输出格式
- 选择您希望将数据存储到接收器中的数据格式或时间格式。