2016-05-05 3 views
0

0 erhalten werden Ich habe zwei Datumswerte: 10:30:00 und 15:59:00.wie Stunden von dem Subtrahieren von zwei Zeitwerten in SQL Server 2008

Wie bekomme ich den Unterschied in Stunden und Minuten in einer Abfrage in SQL Server 2008? geben 05:29

und wandeln es 5,29

+2

Mögliche Duplikate von [SQL-Zeitdifferenz zwischen zwei Daten ergibt hh: mm: ss] (http://stackoverflow.com/questions/13577898/sql-time-difference-between-two-dates-result- in-hhmmss) –

+0

5 min 29 Sekunden ist nicht wirklich 5,29 Minuten, es ist 5,48 Minuten –

Antwort

0
CREATE Function [dbo].[udf_Elapsed] (@Date1 DateTime,@Date2 DateTime) 

Returns Varchar(150) 
As 

Begin 
    Declare @sec int,@hour int,@minut int,@days int 
    SET @sec = DATEDIFF (SECOND,@Date1,@Date2) 
    Set @days = @sec/86400 
    Set @sec = @sec - (@days * 86400) 
    Set @hour = @sec/3600 
    Set @sec = @sec - (@hour * 3600) 
    Set @minut = @sec/60 
    Set @sec = @sec - (@minut * 60) 
    Return right(concat('000',@days),3)+':'+right(concat('00',@hour),2)+':'+right(concat('00',@minut),2)+':'+right(concat('00',@sec),2) 
End 


Select [dbo].[udf_Elapsed] ('2016-05-05 10:30','2016-05-05 15:59') 

liefert 000:05:29:00 (days:hh:mm:ss)

1

geben dezimal ich die Minuten bekommen würde und dann den Rest erledigen Arithmetik:

select (datediff(minute, val1, val2)/60) + 
     (datediff(minute, val1, val2) % 60/100.0) 
0

dieses versuchen

declare @date1 datetime 
declare @date2 datetime 

select @date1 = '00:25:10'; 
select @date2 = '23:05:10'; 

select cast(DATEDIFF(minute, @date1, @date2)/60.0 as decimal(10,2)) 
0

Verwenden Sie DateDiff Funktion wie folgt, um das Ergebnis zu erhalten. enter image description here

+0

Fotos sind nicht so nützlich wie das Hinzufügen Ihres Codes direkt zur Antwort –

Verwandte Themen