-1

在我的 SQL 查询中,我返回的列与 GetDate() 和名为“OriginalFaultOccuredOn”的列之间存在差异(数据类型为 DateTime)。我已经做了一些转换,以便它显示格式差异,如 5.56(5 小时 56 分钟)

结果就像

<Column Name>

3.45
5.55
1.23
10.65

我想以进一步的方式修改它,使它像打印结果一样

More Than 6 Hours  More THan 12 Hours More than 24 Hours
3                  5                  6 

我的 SQL 查询看起来像:-

    Select Floor(Convert(Numeric(18,2),Convert(Numeric(18,2),DateDiff(MI, OriginalFaultOccurredOn, GetDate()))/60)) + 
Convert(Numeric(18,2),((Convert(Numeric(18,2),Convert(Numeric(18,2),DateDiff(MI, OriginalFaultOccurredOn, GetDate()))/60) -
Floor(Convert(Numeric(18,2),Convert(Numeric(18,2),DateDiff(MI, OriginalFaultOccurredOn, GetDate()))/60)))*0.6))[Time] 
From Ticket Where Closed=0

数据库是 MS-SQL Server

4

1 回答 1

1

您可以通过在每次找到匹配项时添加一个来计算落在指定范围内的出现次数:

select sum(case when [time] > 6 and [time] <= 12 then 1 end) [More than 6 hours],
       sum(case when [time] > 12 and [time] <= 24 then 1 end) [More than 12 hours],
       sum(case when [time] > 24 then 1 end) [More than 24 hours]
from
(
 { your-query-here }
) a
于 2012-08-24T13:32:11.860 回答