sql - 在 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]))
有人知道如何在这里测量运行时间吗?
解决方案
当您使用该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)
推荐阅读
- vue.js - Vuetify 应用栏太高 - 占据屏幕的一半
- swift - Swift UIImage Named 在 UITableViewController 中是 nil
- solr - text_general 的推荐管道或链是什么?
- html - 尝试使用 bottom: 0 和 text-align: center 将 div 内的图像居中和底部发送到 div 的底角
- sql - 连接、计数和添加另一个表中的一列值
- c - 可扩展的 if 语句条件
- azure-cosmosdb - 用于在数据库中搜索的 CosmosDB 查询
- latex - 为乳胶数学模式方程添加大括号
- matlab - 如何将地理图堆叠在一起?
- php - PHP/MYSQL:将数据从 MySQL 显示到 PHP 表