在SQL中,我有一列A(float),其中包含2173.03值。您可以将其读作2173小时和3分钟。
我在float中有另一列 - (B),其中包含2171.33值。同样的方式你可以读作2171小时和33分钟。
在SQL中我想从A中减去B列。
所以我需要的是在分钟内转换A列的2173,然后再添加3分钟。
Column A: 2173 * 60 + 03 = 1,30,383 Minutes
Column B: 2171 * 60 + 33 = 1,30,293 Minutes
Column A-B = 90 Minutes
我希望结果为1.30。我怎样才能做到这一点?
答案 0 :(得分:3)
你为什么使用这种神秘的格式?为什么不只是小数分钟,小数表示小数是什么意思?
您可以通过执行以下操作转换为小数分钟:
select (floor(cola) - (cola - floor(cola)) * 100.0 / 60)
然后进行减法:
select ( (floor(cola) - (cola - floor(cola)) * 100.0 / 60) -
(floor(colb) - (colb - floor(colb)) * 100.0 / 60)
)
然后转换回来,我会使用子查询:
select (floor(decimal_minutes) +
(decimal_minutes - floor(decimal_minutes) * 60.0 / 100)
)
from (select ( (floor(cola) - (cola - floor(cola)) * 100.0 / 60) -
(floor(colb) - (colb - floor(colb)) * 100.0 / 60)
) as decimal_minutes
) x
但是,我强烈建议您将列的含义更改为十进制分钟或几秒钟。