我有一个新项目,其中小时信息存储为 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/