2016-04-28 5 views
6

Так что я не знаю, как вычесть два time(hh:mm:ss) в sql-сервере.как вычесть два раза в sql-сервере?

Это мое заявление:

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

К сожалению, SQL Server не имеет тип данных, представляющий время * интервал *. Я бы настоятельно рекомендовал вам * не * использовать 'время' для хранения таких значений, поскольку он представляет * время суток *, и поэтому не очень полезно для интервалов (не допускает отрицательных значений, не поддерживает значения более 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) --будет вернуть диф в минутах

Смежные вопросы