我有十进制时间,我无法转换为时间。
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小时
答案 0 :(得分: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)