如何在 Dax 中获取 DateTime 差异?

How to get DateTime difference in Dax?

我有 table,它有一个 DateTime 列、状态列和一个索引列,我正在尝试获取一个显示前一行和当前行之间的时间差的列,并将其用于忽略前一行状态列为空白。

这是 table 目前的样子:

Time                     ID        status.     timesinceprev(seconds)          index 
22.1.21 04:02:04         12         low                  0                       1
22.1.21 04:24:07         12         low                1320                      2
22.1.21 04:26:04         12         medium             120                       3
22.1.21 04:29:04         12                             180                      4
22.1.21 04:30:05         12                             61                       5 

我想更改 timeSinceprev 以在前一行状态列为空白时以 HH:MM:SS 格式显示时差,这是我目前的查询:

timeCol = 
var tempcol=
MINX(FILTER('Table',
'Table'[ID]=EARLIER('Table'[ID])
),'Table'[Time])
 
var filtertemp =
 EARLIER('Table'[status])
 
 
RETURN IF(filtertemp<>BLANK(),FORMAT('Table'[Time]-tempcol,"HH:MM:SS"))

像下面这样结合IDIndex使用EARLIER得到status=blank时的前一行值,按ID[=16分组=]

Column = 
    VAR _1 =
        SWITCH (
            TRUE (),
            'Table'[status] = BLANK (),
                MAXX (
                    FILTER (
                        'Table',
                        'Table'[ID] = EARLIER ( 'Table'[ID] )
                            && 'Table'[Index] < EARLIER ( 'Table'[Index] )
                    ),
                    'Table'[Time]
                )
        )
    VAR _2 =
        SWITCH (
            TRUE (),
            'Table'[status] = BLANK (), CALCULATE ( MAX ( 'Table'[Time] ) )
        )
    VAR _3 =
        FORMAT ( _2 - _1, "HH:MM:SS" )
    RETURN
        _3

Solution