如何在 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"))
像下面这样结合ID
和Index
使用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
我有 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"))
像下面这样结合ID
和Index
使用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