将数据类型从int更改为time会导致现有值出错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将数据类型从int更改为time会导致现有值出错相关的知识,希望对你有一定的参考价值。
我有一个新项目,其中小时信息存储为数据类型int
现在,我需要两种信息(小时和分钟)
经过一些研究后,我发现数据类型时间可以很好地在一列中存储小时和分钟信息。
当我们将现有数据类型从int(假设值为8)更改为类型时间时,现有值更改为00:00:08
问题更改数据类型的小时数在数据类型时间内转移到秒
有人可以指导我如何正确地将它从int映射到时间?
表结构
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)
以上是关于将数据类型从int更改为time会导致现有值出错的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Identity - 将用户 ID 主键默认类型从字符串更改为 int 以及使用自定义表名时出错
将现有 SQL Server 2005 数据库中的数据类型 varchar 更改为 nvarchar。有啥问题吗?