mysql - 将数据类型从 int 更改为 time 导致现有值出错

标签 mysql sql time

我有一个新项目,其中小时信息存储为 int 数据类型

现在,我需要这两个信息(小时和分钟)

经过一些研究,我发现时间数据类型很适合在列中存储小时和分钟信息。

当我们将现有数据类型从 int(假设值为 8)更改为类型时间时,现有值更改为 00:00:08

问题 更改数据类型后,数据类型时间中的小时数变为秒数

有人可以指导我如何将它从 int 正确映射到 time 吗?

表结构

before
    Name    Type
    hours   int

after
    Name    Type
    hours   time

实际结果

00:00:08

预期结果

08:00:00

最佳答案

创建一个临时列作为 TIME 数据类型并使用此查询:

UPDATE t
SET hours_temp = SEC_TO_TIME(hours * 60 * 60)

当您对结果满意时,删除原始列并重命名临时列。


如果您已经弄乱了数据,请改用它:

UPDATE t
SET hours_temp = SEC_TO_TIME(EXTRACT(second FROM hours) * 60 * 60)

关于mysql - 将数据类型从 int 更改为 time 导致现有值出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55502299/

相关文章:

sql - T-SQL 语句不会接受变量作为授权语句中的角色名称

java - 在servlet中使用executeQuery执行SQL语句

c - 关于获取以毫秒为单位的时间

mysql - 匹配指定的整数

php - mysql_real_escape_string() 到底是做什么的?

php - 如何将每个数字在不同字段中的电话号码插入数据库?

java - 如何使用java在Oracle sql中存储目录结构

c++ - CLOCKS_PER_SEC 与 std::clock() 的结果不匹配

javascript - 如果事件没有发生jquery/javascript,如何记录 react 时间?

用于 mysql 数据库的 android 网络服务器教程