2013-05-20 7 views

ответ

6

Попробуйте один -

запрос:

DECLARE 
     @transtime_in DATETIME 
    , @transtime_out DATETIME 

SELECT 
     @transtime_in = '2013-05-19 08:58:07.000' 
    , @transtime_out = '2013-05-19 16:40:53.000' 

SELECT LEFT(CONVERT(VARCHAR(10), @transtime_out - @transtime_in, 108), 5) 

Выход:

----- 
07:42 
+0

Спасибо большое, может у объяснить, почему '108'? –

+2

Потому что, если вы используете CONVERT с 108-м форматом, вы получите HH: MM: SS и после этого присоединитесь к HH: MM, используя LEFT. Возможно, это самый простой способ сделать это. – Devart

+1

108 - стиль для hh: mm: ss. Вы можете найти дополнительную информацию здесь http://www.w3schools.com/sql/func_convert.asp – Elmer

1
declare @D1 datetime 
declare @D2 datetime 

set @D1 = '2014-03-25 00:00:00.000' 
set @D2 = '2014-03-24 17:14:05.000' 

--select datediff(hour, cast(@D1 as time(0)), cast(@D2 as time(0))) 
SELECT LEFT(CONVERT(VARCHAR(10), @D2 - @D1, 108), 8) 
Смежные вопросы