首页 > 解决方案 > 在 Power BI 中测量开始和结束之间的时间差/运行时间

问题描述

我的本地主机上有一个 SQL 数据仓库。数据通过 SSIS 中的 ETL 项目加载。在 DWH 中,我有一个记录表,每次运行 etl 进程时都会归档。然后在 power bi 的仪表板中报告日志记录表。在日志记录中,我有每个运行的 etl 进程的 StartTime 和 EndTime(在日期时间中)。有些行没有 EndTime,因为 ETL 在那里失败。

现在我正在尝试用 power bi 来衡量每个进程的运行时间(以秒为单位)。我尝试了以下方法,但它不起作用:

TimeDiff = DATEDIFF(('Logging view'[StartTime]),('Logging view'[EndTime]), SECOND)


TimeDiff = Duration.TotalSeconds(('Logging view'[EndTime])-('Logging view'[StartTime]))

有人知道如何在这里测量运行时间吗?

标签: sqlpowerbietldata-analysis

解决方案


当您使用该DATEDIFF函数时,它需要两个日期,如果您在度量中使用它,您将传递两列。

我的建议是在你的 power bi 模型中创建一个计算列并使用该公式:

TimeDiffSeconds = DATEDIFF(('Logging view'[StartTime]),('Logging view'[EndTime]), SECOND)

然后你的度量可以是TimeDiffSeconds

TimeDiff = SUM('Logging view'[TimeDiffSeconds]

如果您不想创建计算列,则需要更改度量以仅给您一个日期,而不是一列,例如:

TimeDiff = DATEDIFF(MIN('Logging view'[StartTime]),MAX('Logging view'[EndTime]), SECOND)

推荐阅读