首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UNIX时间戳到MySQL日期时间

问UNIX时间戳到MySQL日期时间
EN

Stack Overflow用户
提问于 2009-08-15 13:03:13
回答 4查看 27.9K关注 0票数 15

我有一个包含统计数据的表和一个名为time的字段,其中包含Unix时间戳。

表中大约有200行,但我希望将Unix时间戳更改为MySQL日期时间,而不会丢失当前行。当前表格:

代码语言:javascript
复制
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?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-08-15 13:22:37

记得在真正使用它之前测试它,这是从内存中编写的,但应该会给你一个好的想法。

代码语言:javascript
复制
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
票数 30
EN

Stack Overflow用户

发布于 2009-08-15 13:20:52

  1. 使用alter table创建新列(例如,time )在同一个表中具有datetime类型的alter table update stats将time2=from_unixtime(time);
  2. use alter table设置为a) delete time列,以及b)将time2重命名为time。
票数 3
EN

Stack Overflow用户

发布于 2010-04-26 22:33:27

代码语言:javascript
复制
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`;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1281859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档