1

我有十进制时间,我无法转换为时间。

DECLARE @hours decimal(5,3) 
SELECT @hours = 20.30 //20 Hrs and 30 mins  

我需要以下格式的输出

 Hours  20.5 AS Time (data type)

下面是我的代码

  select cast(hours /24 as datetime) 

此代码给出的输出为 20.18 小时。但是我需要 20.5 小时

4

1 回答 1

2

由于小数部分并不真正代表小时的小数部分,因此您需要将其砍掉并单独处理。

在 SQL Server 2012 中:

select TIMEFROMPARTS ( floor(hours), 100*(hours - floor(hours)), 0, 0, 0 )

在 SQL 2012 之前:

select cast(cast(floor(hours) as char(2))+':'+cast(floor(100*(hours - floor(hours))) as char(2)) as time)
于 2012-07-30T04:21:22.180 回答