2016-04-28 71 views
6

所以我不知道如何在sql server中减去两个time(hh:mm:ss)如何在sql server中减去两次?

这是我的发言:

where 
(CONVERT(TIME(7), [EndWork], 102)) - (CONVERT(TIME(7), [StartWork], 102)) < 
CONVERT(TIME(7), ' 8:30:00', 102) 
+0

不幸的是,SQL Server没有一个表示时间间隔* *的数据类型。我强烈建议你*不要*使用'time'来存储这些值,因为它表示一天*的时间,因此对于时间间隔来说不是很有用(不允许使用负值,不支持值大于24小时)。因此,即使您执行了减法操作,我也不建议尝试将其与'CONVERT(TIME(7),'8:30:00',102)'进行比较。 –

+0

这与ASP.NET MVC无关。 –

回答

1
DECLARE @END_DATE TIME = '' ,  
    @START_DATE TIME = '' 
    SELECT CONVERT(TIME,DATEADD(MS,DATEDIFF(SS, @START_DATE, @END_DATE)*1000,0),114) 
1

你可以尝试使用DATEDIFF功能是这样的:

where DATEDIFF(HH,StartWork, EndWork) 
0

你可以像简单地wrute查询:

SELECT CONVERT(varchar,(EndWork- StartWork), 108) FROM tablename 

输出返回(hh:mm:ss)格式。

3

使用DATEDIFF函数,您可以根据需要获得年/月/日/小时/分/秒两个日期/时间的差异。

如: - DATEDIFF (MINUTE , startdate , enddate) --Will返回中DIFF分钟