2011-04-09 54 views

回答

5

TIMESTAMP是一个非常直接的选择。它在内部实现为UNIX时间戳,但在外部它显示为日期字符串(例如“1970-01-01 00:00:01”)。

编辑:为int迁移到一个时间戳,其中time_test是表和ts是原列:

ALTER TABLE time_test ADD ts_new TIMESTAMP; 
UPDATE time_test SET ts_new = FROM_UNIXTIME(ts); 
ALTER TABLE time_test DROP ts; 
ALTER TABLE time_test CHANGE COLUMN ts_new ts TIMESTAMP; 

你可能有,如果你在乎列顺序稍微调整它。

+0

我明白了。我没有意识到这一点......回答我:如果我已经设置为INT,我可以通过并将所有内容更改为TIMESTAMP,并且可以继续吗?我需要指定尺寸吗? – Shackrock 2011-04-09 21:22:59

+0

@Shackrock,我发布了代码。 – 2011-04-09 22:14:16

+0

现在我开始怀疑我以为我理解了什么......哈哈。我想继续使用该列作为unix时间戳 - 也就是大部分数字。当你说“外部显示”时 - 这实际上意味着什么? – Shackrock 2011-04-09 22:41:31

2

MySql直接支持Unix时间戳作为TIMESTAMP数据类型。

您有正常的限制;日期必须从1970年1月1日至2038年1月19日。

+0

2038年之后的情况怎么样......现在还没有解决这个问题吗?哈。 – Shackrock 2011-04-09 21:27:07

相关问题