【发布时间】:2014-08-20 15:26:03
【问题描述】:
我有 分钟 140。小时和分钟变成 2:20。
在这种情况下,我很想得到 2.33。
我尝试过的:
select cast(140/60 as varchar(8)) + '.' + cast((140 % 60) as varchar(8))
输出:2.20
select 140/60
输出:2
select cast(140/60 as decimal(5,2))
输出:2.00
我错过了什么?
如何将 140 分钟转换为十进制小时数?
【问题讨论】:
-
你也应该将 140 和 60 转换为浮点数,选择 cast(140 as float) / cast(60 as float)
-
select case(140/60 as decimal(5,2))返回2.33对我来说很好...... -
@hoangnnm 谢谢,成功了!选择 cast(cast(140 as float) / cast(60 as float) as decimal(5,2))
-
60 不需要浮动,试试下面的代码
-
而你没有直接得到的原因是它采用了分子数据类型。您可以尝试第二个查询,而无需将任何数字转换为浮点数。