我正在尝试将HH:MM:SS格式的varchar转换为表示总分钟数的int值。该表有一个名为:"duration"的varchar和一个称为:"amount_of_students"的学生总数。
我想把以分钟为单位的上课时间除以学生人数。
我已经找到了以下代码,但这在MySQL中不起作用,似乎只在MS SQL中起作用:
select duration,
(convert(int, left(duration, locate(':', duration) - 1)) * 60 +
convert(int, left(right(duration, 5), 2))
)
from Class
我目前收到以下错误:
错误代码:1064。您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册在'int,left(duration,locate(':',duration(-1(附近使用的语法*60+转换(int,le'
如有任何帮助,我们将不胜感激。
在MySQL中,您可以在HH:MM:SS格式的字符串上使用函数hour
和minute
:它们将被解释为时间值:
select hour(duration) * 60 + minute(duration)
from Class
您可以使用time_to_sec()
并乘以60。对于十进制值:
select time_to_sec(duration) / 60
对于整数:
select floor(time_to_sec(duration) / 60)