SQL Server 2014-正在查找日期之间的活动周期



我有一个名为Device的表,当模式更改时,设备状态已被记录

CREATE TABLE MSTR.DEVICE_STATUS_HISTORY
(device_id int, MODE varchar(5) ,CHANGED_TIME datetime);
insert into MSTR.DEVICE_STATUS_HISTORY 
(DEVICE_ID,MODE,CHANGED_TIME)
values (17,'AUTO','2015-03-21 19:30:16.440'),
(17,'MANUAL','2015-03-21 22:20:45.880'),
(17,'AUTO','2015-03-24 11:58:18.990'),
(33,'MANUAL','2015-03-22 17:57:26.670'),
(33,'AUTO','2015-03-24 18:05:59.483 '),
(33,'MANUAL','2015-03-24 19:26:16.210'),
(33,'AUTO','2015-03-25 15:41:14.663 ');

在参数通过的一段时间内,查找设备自动和手动的小时、分钟和秒的要求

例如,我想获得从22-03-2015 08:00:0023-03-2015 16:45:35的自动/手动周期。。。有人能帮我写一个查询吗。

我期待的结果是

Device Status  Hours minutes Seconds
-------------------------------------------------------------------    
17 --> Auto     5  Hours 10 Minutes  2 seconds
17--> Manual    2  Hours 11 Minutes 10 Seconds
33--> Auto      8  Hours 10 Minutes  2 seconds
33--> Manual   12  Hours 11 Minutes 10 Seconds

(小时、分钟和秒只是一个例子,与不匹配

使用DATEPART

SELECT  DEVICE_ID
        ,MODE
        ,CONVERT(VARCHAR(2), DATEPART(HOUR, CHANGED_TIME)) + ' Hours' AS Hours
        ,CONVERT(VARCHAR(2), DATEPART(MINUTE, CHANGED_TIME)) + ' Minutes' AS Minutes 
        ,CONVERT(VARCHAR(2), DATEPART(SECOND, CHANGED_TIME)) + ' Seconds' AS Seconds 
FROM MSTR.DEVICE_STATUS_HISTORY
WHERE CHANGED_TIME <= '2015-03-22 08:00:00'
AND CHANGED_TIME >= '2015-03-21 16:45:35'

最新更新