2016-03-01 77 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;