我想通过更改列“date_added”的数据类型来升级我的数据库表
`date_added` datetime DEFAULT NULL
至
`new_date_added` bigint(20) NOT NULL
date_added
具有以“YYYY-MM-DD HH:MM:SS”格式存储的日期时间值。这个数据库表有超过 15000 行。执行此修改的最佳方法是什么?
注意:我尝试执行以下 MySql 查询:
ALTER TABLE `my_table` ADD `new_date_added` bigint(20) NOT NULL AFTER `date_added`;
UPDATE `my_table` SET new_date_added = UNIX_TIMESTAMP( `date_added` );
ALTER TABLE `my_table` DROP `date_added`;
上述解决方案不会将日期时间值转换为正确的 unix_timestamp。如果我将修改后创建的 UNIX 时间戳与其原始日期时间值进行比较,则存在 19800 秒的差异。