我有一个包含统计数据的表和一个名为time的字段,其中包含Unix时间戳。
表中大约有200行,但我希望将Unix时间戳更改为MySQL日期时间,而不会丢失当前行。当前表格:
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因此,time (INT)应该是一个日期时间字段。
如何将Unix时间戳更新为MySQL的DATETIME?
发布于 2009-08-15 13:22:37
记得在真正使用它之前测试它,这是从内存中编写的,但应该会给你一个好的想法。
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发布于 2009-08-15 13:20:52
发布于 2010-04-26 22:33:27
ALTER TABLE `stats`
MODIFY COLUMN `time` timestamp NULL DEFAULT '0000-00-00 00:00:00' AFTER `id`;
ALTER TABLE `stats`
MODIFY COLUMN `time` datetime NULL DEFAULT '0000-00-00 00:00:00' AFTER `id`;https://stackoverflow.com/questions/1281859
复制相似问题