【问题标题】:How do you convert a varchar in the format of HH:MM:SS to a int value in minutes. Using mysql如何在几分钟内将 HH:MM:SS 格式的 varchar 转换为 int 值。使用 mysql
【发布时间】:2021-04-09 03:14:28
【问题描述】:

我正在尝试将 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 sql type-conversion integer varchar


    【解决方案1】:

    在 MySQL 中,您可以在此类 HH:MM:SS 格式的字符串上使用函数 hourminute:它们将被解释为时间值:

    select hour(duration) * 60 + minute(duration)
    from Class
    

    【讨论】:

      【解决方案2】:

      您可以使用time_to_sec() 并乘以 60。对于十进制值:

      select time_to_sec(duration) / 60
      

      对于整数:

      select floor(time_to_sec(duration) / 60)
      

      【讨论】:

        猜你喜欢
        • 2022-11-23
        • 2020-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-18
        • 1970-01-01
        • 2015-12-29
        • 1970-01-01
        相关资源
        最近更新 更多