如何在Azure Data Factory中将hh:mm:ss格式时长转换为总秒数
Azure Data Factory中将hh:mm:ss格式时长转换为总秒数的方法
你可以直接在「Add dynamic content」模块中使用如下表达式完成转换,逻辑为拆分时长字符串后按时间规则换算总秒数:
@string( add( add( mul(int(split(activity('dataflow').Duration, ':')[0]), 3600), mul(int(split(activity('dataflow').Duration, ':')[1]), 60) ), int(split(activity('dataflow').Duration, ':')[2]) ) )
如果需要返回数字类型的结果,去掉外层的string()包裹即可。
表达式逻辑说明
- 用
split()函数把获取到的时长字符串按:拆分为数组,数组下标0对应小时、1对应分钟、2对应秒 - 用
int()函数把拆分得到的三个字符串值转换为整数 - 按照时间换算规则计算总秒数:小时3600 + 分钟60 + 秒
- 外层可选包裹
string()函数,将数字结果转换为字符串格式,匹配示例输出要求
效果验证
对应给出的测试用例,转换结果完全匹配:
- 输入
"00:01:02"→ 输出62 - 输入
"00:01:22"→ 输出82 - 输入
"00:00:30"→ 输出30 - 输入
"01:00:00"→ 输出3600
空值兼容方案
如果需要兼容activity('dataflow').Duration可能返回空值的场景,可以加判断兜底:
@if( empty(activity('dataflow').Duration), '0', string( add( add( mul(int(split(activity('dataflow').Duration, ':')[0]), 3600), mul(int(split(activity('dataflow').Duration, ':')[1]), 60) ), int(split(activity('dataflow').Duration, ':')[2]) ) ) )
内容的提问来源于stack exchange,提问作者lalalalaalalallll
相关产品推荐
相关产品推荐

