我有两个日期值:10:30:00和15:59:00。
如何在SQL Server 2008的查询中获得小时和分钟的差异? 给05:29
并将其转换为十进制以给出5.29
答案 0 :(得分:1)
我会得到分钟,然后使用算术处理剩下的时间:
select (datediff(minute, val1, val2) / 60) +
(datediff(minute, val1, val2) % 60 / 100.0)
答案 1 :(得分:0)
试试这个
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))
答案 2 :(得分: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')
返回000:05:29:00 (days:hh:mm:ss)
答案 3 :(得分:0)