2013-02-05 18 views

Odpowiedz

18

Można użyć DATEDIFF aby zobaczyć różnicę w minutach i przekonwertować na godziny:

select datediff(mi, startdate, enddate) 

Zakładając 1,5 oznacza 1 godzinę i 30 minut, można po prostu wynik podzielić przez 60:

select datediff(mi, startdate, enddate)/60.0 
2

to pomoże ....

Declare @Date1 dateTime 
    Declare @Date2 dateTime 
    Set @Date1 = '22:30:00' 
    Set @Date2 = '00:00:00' 
    Select Cast((@Date1 - @Date2) as Float) * 24.0 
1

Spróbuj:

declare @dt1 datetime, @dt2 datetime, @Seconds int 
select @dt1='2013-02-05 14:05:55.113', @dt2 =getdate() 
set @Seconds=datediff(second, @dt1, @dt2) 

    declare @Hour nvarchar(50) 
    declare @Min nvarchar(50) 
    declare @MinTemp int   
    if @Seconds >0 
    begin 
    set @Hour=cast((@Seconds/3600) as nvarchar(20)) +' Hrs ' 
    set @MinTemp= (@Seconds % 3600)/60 
    set @Min=cast(@MinTemp as nvarchar(20)) 
    if @MinTemp<10 
     select @Hour+'0'[email protected] +' Min' 
    else 
     select @[email protected] +' Min' 
    end 
    else 
    select '00 Hrs 00 Min' 
2

Keep it simple, synu.

declare @date1 datetime 
declare @date2 datetime 

select @date1 = GETDATE(); 
select @date2 = '2013-02-02 14:05' 

select DATEDIFF(hh, @date2, @date1) 


Results 
----------- 
71 

(1 row(s) affected) 
+5

'DATEDIFF' zwraca liczbę całkowitą. Dlatego nigdy nie odda części ułamkowej, jak w minutach. – Tobsey

0

Aby uzyskać Dokładna różnica czasu w formacie GG: MM spróbować poniższy kod w MS-SQL

Declare @InTime datetime='2017-11-27 10:00:00', 
@OutTime datetime='2017-11-27 11:15:00' 

SELECT CONVERT(varchar(5),DATEADD(minute,DATEDIFF(minute,@InTime,@OutTime),0), 114) 
----------- 
Result 
01:15 
Powiązane problemy