计算2个表和列之间的时间差,数据类型为smalldatetime和time

时间:2016-07-23 02:50:16

标签: sql sql-server-2008 time ssrs-2008

我有2张桌子和班次。 转换表就像

Starttime   |   Endtime     |   shift   |
---------------------------------------------------------       
07:00:00.00 |   16:00:00.00 |   1   |   

表格就像

In          |   Out         |   shift   |   
------------------------------------------------------------
2016-07-01 06:54:00 |   2016-07-01 17:03:00 |   1   |   

我想计算starttime和

之类的区别
Output  
------  
01.03

01.03是结束时间和结束时间之间的时间差。

我想在SSRS中这样做,当我在输出字段中执行此操作时,它会给我一个错误

=Fields!out.Value-Fields!endtime.Value

我们可以使用SQL查询吗?

Endtime数据类型是时间,out数据类型是smalldatetime

1 个答案:

答案 0 :(得分:1)

在SQL查询中使用(Out-Endtime)计算所需的差异,根据您提供的表结构,您的查询应如下所示:

SELECT *,CONVERT(VARCHAR(10),(Out-Endtime),108)DIFF FROM tblIN I JOIN tblShift S ON I.shift=S.shift

结果

Starttime           Endtime            shift    In                   Out               shift    DIFF
07:00:00.0000000    16:00:00.0000000    1       2016-07-01 06:54:00 2016-07-01 17:03:00 1       01:03:00