2011-04-09 59 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

相關問題