获取两个 Unix 时间戳之间的"Business Seconds"数



给定这两个时间戳/转换为datetimes:

Start - 1668105400.814 - Thursday, November 10, 2022 12:36 PM
End   - 1668444427.195 - Monday, November 14, 2022 10:47 AM

…我怎么能得到秒数,调整为"业务";天吗?在这个示例中,您将看到开始日期是星期四(星期五是加拿大的假日),结束日期是星期一。考虑假期在这里并不是很重要,但为了简化解决方案,如果从结束和开始之间的差异中减去172800秒(2天的时间),如果它延伸到一个周末,那将是很酷的。

我的数据集是这样的:

type         created_at           emitted_at
assign       1668105400.814       1668105400.814
archive      1668105400.814       1668444427.195

我目前如何计算秒数是在一个添加的自定义列与公式:

_Created_To_Archive_Handle_Time = IF(Front_Email_Stats[type]="archive", ROUND((Front_Email_Stats[emitted_at] - Front_Email_Stats[conversation.created_at]), 1), BLANK())

…其中,它只过滤archive类型,然后从created_at时间戳中减去存档的emitted_at时间戳。

一个朴素的方法看起来像这样:

_Created_To_Archive_Handle_Time = IF(Front_Email_Stats[type]="archive", IF(AND(WEEKDAY(Front_Email_Stats[_created_at_datetime_custom_column]) < 7, WEEKDAY(Front_Email_Stats[_emitted_at_datetime_custom_column]) > 1), ROUND((Front_Email_Stats[emitted_at] - Front_Email_Stats[conversation.created_at]), 1) - 172800, ROUND((Front_Email_Stats[emitted_at] - Front_Email_Stats[conversation.created_at]), 1)), BLANK())

…我们只过滤archive类型,然后做一个简单的检查,如果开始时间戳的星期的一天小于星期六(7我想?)和结束时间戳的星期的一天大于星期日(1?),但想知道是否有一个更优雅的解决方案。

使用NETWORKDAYS(),然后手动减去秒数

https://learn.microsoft.com/en-us/dax/networkdays-dax

最新更新