如何获得小时的总时间

时间:2012-02-22 06:30:28

标签: sql-server-2008 datetime aggregate-functions

我有一个名为tblMaintainsHdr的表 在那我有以下列

asset_ID maintns_StrtDate Maintns_EndDate  Maintains_strtTime      Maintains_EndTime

 1       2011-12-09       2011-12-09     2011-12-09 12:03:00.000   2011-12-09 12:03:00.000
 2       2011-12-10       2011-12-12     2011-12-10 12:03:00.000   2011-12-12 12:03:00.000
 

考虑到列

,我需要计算总维护时间

maintains start timemaintains end timemaintains start datemaintains end date

1 个答案:

答案 0 :(得分:0)

使用下面的SQL脚本。

    Declare @TableVar table(startDt Datetime, endDt Datetime, startTm dateTime, endTm dateTime)

    select * from @TableVar
    insert into @TableVar values ('2011-12-09','2011-12-09','2011-12-09 12:03:00.000','2011-12-09 12:03:00.000')
    insert into  @TableVar values('2011-12-10','2011-12-12','2011-12-10 12:03:00.000','2011-12-12 12:03:00.000')

/*  Without adding maintanance Start Date and End Date   */
 select 
        tot=sum(
                DATEDIFF(hh ,startTm ,endTm )
        )
    from @TableVar
-- It returns 48


/* With adding maintanance Start Date and End Date   */
    select 
        tot=sum(
                DATEDIFF(hh ,startDt + startTm ,endDt+endTm)
        )
    from @TableVar
-- It returns 96

如果没有工作,请告诉我.. 如果我的答案有效,请将Mark标记为答案