MySQL DATETIME的UNIX时间戳

Hen*_*oom 15 mysql datetime timestamp

我有一个包含统计信息的表和一个以timeUnix时间戳命名的字段.

表中有大约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
Run Code Online (Sandbox Code Playgroud)

所以time(INT)应该是DATETIME字段.

如何将Unix时间戳更新为MySQL的DATETIME?

Lep*_*eus 30

记得在真正使用它之前测试它,这是从内存中写的,但应该给你一个好主意.

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
Run Code Online (Sandbox Code Playgroud)