0

我有一个表格,如下所示:

 Id   Date        ScheduledTimeFrom     ScheduledTimeTo      ActualTimeFrom       ActualTimeTo
 1   2013-01-01   1899-12-30 07:00:00   1899-12-30 18:00:00  1899-12-30 07:23:00  1899-12-30 17:15:00 

我需要计算每半小时有多少条记录,输出应该是这样的:

 Time      Actual Count:
 7:00      4
 7:30      4
 8:00      4
 8:30      4
 9:00      4
 9:30      5
 10:00     5
 10:30     6
 11:00     7
 11:30     8
 12:00     8
 12:30     8
 13:00     8
 13:30     8
 14:00     8
 14:30     8
 15:00     7
 15:30     7
 16:00     7
 16:30     6
 17:00     5
 17:30     4
 18:00     4

我已经尝试制作一个助手表,该表应该每半小时保存一次。我已将此帮助表与包含数据的表连接起来,之后我尝试按函数使用分组,但它不起作用。

我的查询是这样的:

Create table period (timefrom datetime, timeto datetime)
insert into period
select '1899-12-30 07:00:00.000', '1899-12-30 07:30:00.000'
Union all
select '1899-12-30 07:30:00.000', '1899-12-30 08:00:00.000'


select * 
from period p left join table1 t on t.ActualTimeFrom < p.timeto and t.ActualTimeTo  >=p.timefrom

Grouping this give me no desired result....

有人知道如何得出结果吗?

PS我使用的是sql server 2005。

4

1 回答 1

0

在我身边窥探并测试它之后,看起来这个日期函数可能是答案:

DATEADD(mi,DATEDIFF(mi,0,YOUR_DATE_COLUMN)/30*30,0)
于 2013-10-16T07:52:59.787 回答