使用SQL转换和舍入(秒到分钟)

时间:2011-12-18 10:23:38

标签: mysql sql

我的桌子上有一个表示秒的字段,我想转换为分钟

Select (100/60) as Minute from MyTable
-> 1.66

如何获得1分40秒00:01:40然后转到00:02:00,如果00:01:23转到00:01:30

使用Mysql。

4 个答案:

答案 0 :(得分:6)

有两种舍入方式,使用整数运算并避免浮点数,值为最接近的30秒......

  • ((秒+15)DIV 30)* 30
  • (秒+15) - (秒+15)%30

后者更长,但就cpu时间而言应该更快。


然后,您可以使用SEC_TO_TIME(seconds)获取格式hh:mm:ss,如果您 需要hh:mm,则可以使用正确的5个字符。


如果你想避免SEC_TO_TIME(seconds),你可以自己建立一个字符串。

  • 分钟= total_seconds DIV 60
  • 秒= total_seconds%60

  • 最终字符串= LPAD(minutes, 2, '0') | ':' | LPAD(seconds, 2, '0')

答案 1 :(得分:3)

我不确定如何round,但您可以使用seconds

time转换为hh:mm:ss,即SEC_TO_TIME(totaltime)格式

答案 2 :(得分:0)

期望的结果:

A = 30
B = 60
C = 90
D = 120

select 

(25 + 15)-(25 + 15) % 30 as A,

(32 + 15)-(32 + 15) % 30 as B,

(90 + 15)-(90 + 15) % 30 as C,

(100 + 15)-(100 + 15) % 30 as D

结果:

A = 30

B = 30

C = 90

D = 90

我试着用这个:

select 

30* ceil(30/30) as A,

30* ceil(32/30) as B,

30* ceil(90/30) as C,

30* ceil(100/30) as D

结果:

A = 30

B = 60

C = 90

D = 120

感谢您的帮助!

答案 3 :(得分:-3)

您只需编写自己的函数http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html

即可

但我宁愿用编程语言(PHP,Python,C)来做,而不是在数据库方面。