我有一个遗留数据库,其中有包含字段的表: 开始日期时间戳, expiration_date DATETIME。
如果在具有不同时区的数据库上使用数据库,则会导致某些查询出现问题。 所以为了避免它们,我想将 start_date 转换为 DATETIME。我怎样才能安全地从 TIMESTAMP 转换为 DATETIME?如果我将 start_date 的类型从 TIMESTAMP 更改为 DATETIME,我不会丢失任何数据吗? mysql 如何将日期 TIMESTAMP 转换为 DATETIME?
最佳答案
我会这样做:
1) 创建一个新的datetime
列
ALTER TABLE mytable ADD COLUMN mydatetime DATETIME;
2) 使用时间戳值更新此列
UPDATE mytable SET mydatetime=FROM_UNIXTIME(UNIX_TIMESTAMP(mytimestamp));
3) 经过几次完整性检查后,删除timestamp
列
ALTER TABLE mytable DROP COLUMN mytimestamp;
这对您来说应该足够安全,因为您可以根据需要保留原始 timestamp
列。
这是一个sqlfiddle示例。
关于mysql - 如何将字段从时间戳转换为日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24720700/