Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在sql server中减去两次?_Sql_Sql Server_Sql Server 2012 - Fatal编程技术网

如何在sql server中减去两次?

如何在sql server中减去两次?,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,所以我不知道如何在sql server中减去两个时间(hh:mm:ss) 我的声明如下: where ( CONVERT(TIME(7), [EndWork], 102)) - ( CONVERT(TIME(7), [StartWork], 102)) < CONVERT(TIME(7), ' 8:30:00', 102) 在哪里 (转换(时间(7),[EndWork],102))-(转换(时间(7),[StartWork],102))< 转换(时间(7),'8:30:00',

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

我的声明如下:

where   
 ( CONVERT(TIME(7), [EndWork], 102)) - ( CONVERT(TIME(7), [StartWork], 102)) <
 CONVERT(TIME(7), ' 8:30:00', 102)
在哪里
(转换(时间(7),[EndWork],102))-(转换(时间(7),[StartWork],102))<
转换(时间(7),'8:30:00',102)
您可以尝试使用以下功能:

where DATEDIFF(HH,StartWork, EndWork)
使用该功能,您将根据需要获得年/月/日/小时/分钟/秒的两个日期/时间差


例如:-
DATEDIFF(MINUTE,startdate,enddate)
--将在分钟内返回diff

很遗憾,SQL Server没有表示时间间隔的数据类型。我强烈建议您不要使用
time
来存储此类值,因为它表示一天中的某个时间,因此对于间隔(不允许负值,不支持大于24小时的值)不是很有用。因此,即使您执行了减法运算,我也不建议您将其与
CONVERT(TIME(7),'8:30:00',102)
进行比较。这与ASP.NET MVC无关。@Damien\u不相信者-OP没有说明他存储的是时间间隔,只是时间值。从上下文来看,他可能正在存储工作开始的日期/时间和工作结束的日期/时间。这可能是因为他的系统不可能保持超过24小时的间隔,所以不会造成任何伤害。@STLDev-他们正在从一个时间中减去另一个时间,并希望仍能将其作为“时间”使用。当我从一次减去另一次时,我希望得到一个间隔。你期待什么?
DECLARE @END_DATE TIME = '' ,    
     @START_DATE  TIME = ''
     SELECT CONVERT(TIME,DATEADD(MS,DATEDIFF(SS, @START_DATE, @END_DATE )*1000,0),114)