十进制值到hh.mm的转换问题0.33333十进制值不显示为00.20分钟

tag5nh1u  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(311)

我有一个问题,转换小数点,如0.33333,这需要显示为20分钟。用我的公式,它显示为19分钟。我希望有人能帮忙。谢谢您。目前我正在使用的代码示例。

declare @value float = 0.3333333
select
Cast(CONVERT(VARCHAR, CONVERT(INT, Floor(cast(@VALUE as Decimal (10,2))))) 
            + '.' + CONVERT (VARCHAR, CONVERT(INT, (cast(@value as Decimal (10,2)) - Floor(cast(@VALUE as Decimal (10,2)))) * 60.0)) as Decimal(10,2)) [hh.mm],
            cast(@value as money) [DecimalHours]
dxxyhpgq

dxxyhpgq1#

-- integer part      -- fractional part             -- final rounding
cast(floor(@value) + ((@value - floor(@value)) * 0.6) as dec(18,2))

工作24小时以上

cld4siwp

cld4siwp2#

使用日期/时间函数可能会简单得多:

SELECT FORMAT( DATEADD(n,ROUND(60.0 * @value,0) ,0) , 'HH:mm')

相关问题