【问题标题】:Average Time on SQLSQL 上的平均时间
【发布时间】:2021-03-08 16:59:57
【问题描述】:

我正在编写一份报告,我需要找到两个时间戳之间的平均时间。

要查找我使用的时间戳之间的时间:

CAST(( Time2 - Time1 ) as time(0)) AS 'Time Between Stage1 and Stage2'

现在我有了那个专栏,我正在尝试获取 Stage1 和 Stage2 之间花费的平均时间。我正在寻找 hh:mm:ss 格式的输出。

【问题讨论】:

    标签: sql time powerbi average reporting


    【解决方案1】:

    试试这个:

    Format(AVERAGE(CAST(( Time2 - Time1 ) as time(0)), "HH:MM: SS"))
    

    【讨论】:

    • 我收到以下错误:Msg 174, Level 15, State 1, Line 37 AVG 函数需要 1 个参数。
    • 该语句的括号不匹配,在 CAST 之后删除一个括号
    • 改变了答案。
    • Format(AVG(CAST((Time2-Time1) as time(0))), 'HH:MM:SS') 错误:消息 8117,级别 16,状态 1,第 37 行操作数数据类型时间对于 avg 运算符无效。
    【解决方案2】:

    声明@t1 日期时间,@t2 日期时间

    set @t1 = '14:15:54'
    set @t2 = '15:12:33'
    
    select @t1,@t2
    
    select cast(dateadd(ms, AVG(datediff( ms, @t1 ,@t2 )), '00:00:00') as time)
    

    首先,使用 DateDiff 以最低粒度的格式查找差异。 然后,求平均值 使用 DateAdd 将平均值转换回日期(如果您尝试使用强制转换或转换,则会出现错误) 最后,时光倒流

    用你的属性替换变量

    【讨论】:

      猜你喜欢
      • 2010-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多