SQL计算持续时间并按天分组

时间:2014-04-01 08:14:25

标签: sql sql-server sql-server-2008 tsql

我有一个Signals列的名称列是id,signalname,starttime,endtime。

例如:

+---------+--------------------------------------+-----------------------------+------------------------------+
| Name    | DDSEventId                           | StartTime                   | EndTime                      |
+---------+--------------------------------------+-----------------------------+------------------------------+
| Start   | 5C365D11-B76B-11E3-BF3B-005056B0298A | 2013-03-01 02:58:39.0000000 | 2013-03-01  03:58:00.0000000 |
| AnyName | 5C365D12-B76B-11E3-BF3B-005056B0298A | 2013-03-01 02:59:00.0000000 | 2013-03-01  03:09:00.0000000 |
| AnyName | 5C365D13-B76B-11E3-BF3B-005056B0298A | 2013-03-01 03:58:39.0000000 | 2013-03-01  04:28:39.0000000 |
| Start   | 5C365D99-B76B-11E3-BF3B-005056B0298A | 2013-03-01 09:00:00.0000000 | 2013-03-01  09:10:00.0000000 |
| AnyNAme | 77211888-B76B-11E3-BF3B-005056B0298A | 2013-03-01 13:27:25.0000000 | 2013-03-01 18:00:31.0000000  |
| Start   | 77211815-B76B-11E3-BF3B-005056B0298A | 2000-01-02 04:27:25.0000000 | 2014-03-02 08:00:31.0000000  |
| AnyName | 43C94D44-84C1-440B-8291-A17400005B47 | 2013-03-02 09:00:01.0000000 | 2013-03-02 09:59:08.0000000  |
| Start   | 43C94DB2-84C1-440B-8291-A17400005B47 | 2013-03-02 16:00:01.0000000 | 2013-03-02 17:59:08.0000000  |
| AnyName | 43C94DB3-84C1-440B-8291-A17400005B47 | 2013-03-02 18:00:01.0000000 | 2013-03-02 18:20:00.0000000  |
| AnyName | 43C94DB6-84C1-440B-8291-A17400005B47 | 2013-03-02 20:00:01.0000000 | 2013-03-02 23:00:00.0000000  |
+---------+--------------------------------------+-----------------------------+------------------------------+

Start =表示起点的信号。 AnyName =任意随机信号。 查询:我想查找每天机器开启的总持续时间。我们可以在我的案例中使用的公式是。 (开始前的任何名称(结束时间)) - 开始(StartTime)=持续时间。然后将天数和天数相加。

0 个答案:

没有答案