具有小时间隔的日历的 GENERATESERIES 功能未按预期工作

问题描述 投票:0回答:1

我正在尝试根据我的事实表生成每小时间隔的日历。

逻辑: 获取事实中最早和最晚的日期,并根据这些年份创建日历。

使用的公式:

VAR minDate = MIN(Monitoring[Usage Date])
VAR maxDate = MAX(Monitoring[Usage Date])

VAR startDate = DATE(YEAR(minDate), 1, 1)
VAR endDate =  DATE(YEAR(maxDate), 12, 31)

RETURN GENERATESERIES(startDate, endDate, 1/24)

问题: 在某个时刻,时间会从 XX:00:00 转移到 XX:59:59。

我在逻辑、代码或其他方面缺少什么吗?

Data Snapshot

powerbi dax ssas data-analysis powerbi-desktop
1个回答
0
投票

我看到了同样的行为。我怀疑这是因为 1/24 的浮点运算。

顺便说一句,这不是生成这样的表的方式。您应该有单独的数据和时间表,并且时间应该仅为 24 小时,否则高基数会降低性能。

编辑

正如怀疑的那样,它是浮点算术,并且适用于一年:

Test = 
VAR minDate = DATE(2023, 1,1)
VAR maxDate = DATE(2023,12,31)

VAR startDate = DATE(YEAR(minDate), 1, 1)
VAR endDate =  DATE(YEAR(maxDate), 12, 31)

RETURN GENERATESERIES(startDate, endDate, 0.04166666667)
© www.soinside.com 2019 - 2024. All rights reserved.