将SQL的DATEDIFF语句转换为Azure映射数据流表达式遇错求助
解决Azure Data Flow中日期差计算的错误问题
你用错函数了,subDays的作用是对指定日期减去N天(比如subDays(currentTimestamp(), 7)是获取7天前的日期),不是用来计算两个日期之间的天数差的。
要实现SQL里datediff(day, AppliedDate, getdate())的逻辑,Azure Data Flow里应该用daysBetween函数,它专门用来计算两个日期之间的天数差,参数顺序是起始日期在前,结束日期在后,和SQL的datediff参数顺序一致。
正确的表达式应该是:
iif(Trans_StatusId != 1, 0, daysBetween(toDate(AppliedDate), currentTimestamp()))
验证逻辑:
- 当
Trans_StatusId不等于1时,返回0,和原SQL逻辑一致 - 当
Trans_StatusId等于1时,用daysBetween计算AppliedDate到当前时间的天数差,结果和datediff(day, AppliedDate, getdate())等价
内容的提问来源于stack exchange,提问作者datainstints
相关产品推荐
相关产品推荐

