2016-03-01 74 views
0

我的表格有一个BIGINT列,其中包含以毫秒为单位的时间(EPCOH时间)。我想在类型为DATE的同一个表中添加一个新列。将'DATE'值插入到mysql中

我在桌上有大约一百万行。我现在必须复制BIGINT值,将它们转换为DATE值并插入新创建的列。有没有更简单的方法来做到这一点?

我可以做以下,但我需要一种方法来做到这一切在一次

INSERT INTO test (TIME_NORMAL) VALUES (FROM_UNIXTIME(TIME_EPOCH/1000)); 

|

+0

不需更新替代,像'UPDATE测试集TIME_NORMAL = FROM_UNIXTIME(TIME_EPOCH/1000)'。 – jarlh

+0

您是否想基于旧的表示(BIGINT)日期信息更新现有相同表中的(新)DATE列? –

+0

你想要'DATE'或'DATETIME'值吗?如果你想要'DATE'值(有午夜时间),你应该明智地使用这个表达式:'DATE(FROM_UNIXTIME(TIME_EPOCH/1000))'所以很明显你会把时间部分丢掉。 –

回答

2

想必,你想update

update test 
    set time_normal = FROM_UNIXTIME(TIME_EPOCH/1000); 

如果没有列已,然后使用alter table添加:

alter table test add time_normal datetime;