我将Oracle表中的时间使用量存储为秒数:
5
10
100
500
如何将秒数转换为分钟数,向上舍入到下一个最接近的分钟?对于我想得到的秒值:
1
1
2
9
答案 0 :(得分:3)
假设您实际上正在使用Oracle,您可以使用the CEIL
function来“舍入”您获得的小数分钟数除以60到下一个整数。
ceil(your_column/60)
所以有一些样本值:
select seconds, ceil(seconds/60) as minutes
from your_table
order by seconds;
SECONDS MINUTES
---------- ----------
5 1
10 1
100 2
500 9
1800 30
答案 1 :(得分:0)
你试图把它除以60并“截断”。遗憾的是,没有内置函数可以完全执行此操作,但仍可以使用trunc
:
SELECT CASE TRUNC(myseconds/60) WHEN myseconds/60 THEN myseconds/60
ELSE TRUNC(myseconds/60) + 1
END
FROM my_table
编辑:
或者使用子查询以更优雅的形式:
SELECT CASE TRUNC(myminutes) WHEN myminutes THEN myminutes
ELSE TRUNC(myminutes) + 1
END
FROM (SELECT myseconds/60 AS myminutes
FROM myable)