我有一个统计数据表和一个名为Time的字段与Unix Timestamps.
表中有大约200行,但是我想将Unix时间戳更改为MysqL DATETIME,而不会丢失当前行.当前表:
CREATE TABLE `stats` ( `id` int(11) unsigned NOT NULL auto_increment,`time` int(11) NOT NULL,`domain` varchar(40) NOT NULL,`ip` varchar(20) NOT NULL,`user_agent` varchar(255) NOT NULL,`domain_id` int(11) NOT NULL,PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8
所以时间(INT)应该是DATETIME字段.
如何将Unix Timestamp更新为MysqL的DATETIME?
记住在使用它之前测试它是真实的,这是从内存写的,但应该给你一个好主意.
ALTER TABLE `stats` CHANGE `time` `unix_time` int(11) NOT NULL // rename the old column ALTER TABLE `stats` ADD `time` DATETIME NOT NULL // create the datetime column UPDATE `stats` SET `time`=FROM_UNIXTIME(unix_time) // convert the data ALTER TABLE `stats` DROP `unix_time` // drop the old unix time column