2013-07-01 38 views
0

我有使用Python with time.time()導致在秒的時間,看起來像1370449004.766663等加載DATABSE。將mysql varchar轉換爲浮點或紀元時間?

這些是在是類型爲varchar的指定列的時間。

我怎樣才能轉換此列,以便能夠利用from_unixtime()命令討論here

當我做這個現在:

SELECT UNIX_TIMESTAMP(time) from table; 

輸出爲0,時間是與time.time從我的Python命令的輸出VARCHAR列。

然而,我的主要目標是本專欄要注意爲float列,這樣我可以在上面做數學轉換,而無需每次都投它。

有什麼建議嗎?

+0

浮動?如果你刪除點,它只是一個微球的數量,不是嗎?那麼你的準確性會好得多,計算速度更快,麻煩 - 更少 – akostadinov

回答

1

unix_timestamp()取日期作爲輸入。將它稱爲varchar(如1370449004.766663)是沒有意義的。

要將varchar列轉換爲float列,您可以:

alter table YourTable add FloatColumn float; 
update YourTable set FloatColumn= convert(time, float); 

這是一個更好的主意來存儲日期爲datetime柱:

alter table YourTable add DateTimeColumn datetime; 
update YourTable set DateTimeColumn = from_unixtime(convert(time, float)); 
+0

你可以在這些行上添加分號嗎?新的SQL。由於 – Cripto

+0

剛試過的更新,它說你有一個錯誤 – Cripto

+0

爲了幫助我們提供有用的反饋,儘可能具體,你可以。嘗試在sqlfiddle.com上重現錯誤,或者至少發佈確切的錯誤消息。 – Andomar