2013-02-05 13 views
5

Vorrei calcolare la differenza esatta di ore tra due variabili datetime. La differenza ora dovrebbe essere esattamente in questo modo:Differenza tra due date nel numero esatto di ore in SQL

1.5 
2 
6.25 

Chiunque si prega di aiuto out..Thanks in anticipo ...

+0

6,25 = Quante ore e minuti? – TechDo

+0

@techdo sicuramente puoi allenarti per molti minuti ci sono in .25 di un'ora? – Tobsey

risposta

18

si potrebbe usare DATEDIFF per trovare la differenza in pochi minuti e convertire in ore:

select datediff(mi, startdate, enddate) 

Assumendo 1.5 mezzi 1 ora e 30 minuti si può semplicemente dividere il risultato per 60:

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

vi aiuterà ....

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

Si prega di provare:

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, il figlio.

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' restituisce un numero intero. Quindi non darà mai la parte frazionaria, come nei minuti. – Tobsey

0

Per ottenere esatta differenza di orario in HH: MM provare il codice qui sotto in 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 
Problemi correlati