gpt4 book ai didi

sql - 根据纪元算出耗时百分比

转载 作者:行者123 更新时间:2023-12-01 11:16:17 26 4
gpt4 key购买 nike

我的数据库列出了 SQL 服务器作业、它们的开始时间和平均持续运行时间。我目前的开始时间和 ETA 结束时间显示为 Epoch:

DATEDIFF(SECOND, CONVERT(date, DATEADD(minute,AVG(datediff(minute, p3.[Started], p3.Finished)),MAX(p3.[Started]))),  DATEADD(minute,AVG(datediff(minute, p3.[Started], p3.Finished)),MAX(p3.[Started]))) [ETAEpoch],
DATEDIFF(SECOND, CONVERT(date, GETDATE()), GETDATE()) [CurrentEpoch]

不过,我想计算出完成工作的百分比。简单的数学会建议我用当前时间除以 ETA 完成时间,再乘以 100 得到这个。计算它给出了一个准确的数字,但是当我执行此操作时 SSMS 显示“0”:

DATEDIFF(SECOND, CONVERT(date, GETDATE()), GETDATE())
/
DATEDIFF(SECOND, CONVERT(date, DATEADD(minute,AVG(datediff(minute, p3.[Started], p3.Finished)),MAX(p3.[Started]))), DATEADD(minute,AVG(datediff(minute, p3.[Started], p3.Finished)),MAX(p3.[Started])))

我很确定需要关闭/更改一些东西才能使这个总和起作用,但我不知道是什么!

最佳答案

SQL Server 进行整数除法。所以,1/2 是 0 而不是 0.5。因此,您需要转换为具有小数位的格式。我经常通过乘以 1.0 来做到这一点:

(DATEDIFF(SECOND, CONVERT(date, GETDATE()), GETDATE()) * 1.0 /
DATEDIFF(SECOND, CONVERT(date, DATEADD(minute,AVG(datediff(minute, p3.[Started], p3.Finished)),MAX(p3.[Started]))), DATEADD(minute,AVG(datediff(minute, p3.[Started], p3.Finished)),MAX(p3.[Started]))
)

关于sql - 根据纪元算出耗时百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50697937/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com