DAX 将以秒为单位的数字转换成分钟,小时,和天数显示的时间

这篇文章主要向大家介绍用 DAX 将以秒为单位的数字转换成分钟,小时,和天数显示的时间,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。
文章地址:https://blog.csdn.net/jessica_seiya/article/details/80757238

有的时候,原始数据对时间的存储是以秒为单位进行的,好比 CPU 运行了 3600 秒。对于这种数据,若是直接拿来生成 report 给用户的体验不是很好,可读性不强。若是把 3600 秒转换成 1 小时,就更能让 report 使用者接受。php

这种转换也不难,主要利用数学三角函数进行就能够了。思路就是用秒数先除以 86400(1 天等于 86400 秒),获得的商数就是天数。以后用总的秒数减去折合整天数的描述,剩余部分就能够用了计算小时数。计算思路也是用秒数除以 3600(1 小时 = 3600 秒),商数部分就是小时数。在以此类推,剩下的秒数除以 60 的商数就是分钟数,余数就是秒数。web

以后能够将所的结果拼接起来,就完成了将以秒为单位的数字转换成分钟,小时,和天数显示的时间。

RunTime = 
VAR Duration = CPU[RunSeconds]
VAR Days =
    INT ( Duration / 86400 )
VAR Hours =
    INT ( MOD( Duration - ( Days * 86400 ), 86400 ) / 3600 )
VAR Minutes =
    INT ( MOD ( Duration - ( Hours * 3600 ), 3600 ) / 60 )
VAR Seconds =
    ROUNDUP ( MOD ( MOD ( Duration - ( Hours * 3600 ), 3600 ), 60 ), 0 )
VAR D =
    IF ( LEN ( Days ) = 1, "0" & Days, "" & Days )
VAR H =
    IF ( LEN ( Hours ) = 1, "0" & Hours, "" & Hours )
VAR M =
    IF ( LEN ( Minutes ) = 1, "0" & Minutes, "" & Minutes )
VAR S =
    IF ( LEN ( Seconds ) = 1, "0" & Seconds, "" & Seconds )
RETURN
D & ":" & H & ":" & M & ":" & S

相关推荐