2012-11-22 72 views
0

沒有秒我需要能夠從一個CSV文件(我不能改變)導入到mysql數據庫的日期和時間,看起來像這樣在csv = 201210021015導入時間/日期從CSV

YYYYMMDDHHMM。 ..但沒有秒

當我導入201111221420DATETIME我得到奇怪的結果,如2020-11-11

A TIMESTAMP格式忽略小時和分鐘。

有誰能提醒一下嗎?

+1

它看起來像代碼假設你有YYMMDDHHMMSS格式,並且正在用當前世紀代替'缺失'CC(因此201111221420被視爲2020-11-11 21:14:20而不是2011-11-22 14:20:00)。一種修復方法是將缺少的00添加到字段末尾(在導入之前編輯CSV文件,也許使用[CSVFix](http://code.google.com/p/csvfix/))。可能有其他方法來達到您的要求的結果。 –

+0

這很有道理,謝謝喬納森。我想如果必須調整csv,但那會變成一件持續的雜事。我想'修復'它在MySQL中,如果我可以...... – highfidelity

+0

有可能簡單的解決方案,你如何在MySQL中導入CSV文件?如果你只導入一次csv文件,你可以使用記事本++做一些奇妙的事情...... – Justin

回答

0

使用str_to_date()功能是這樣的:

像這樣的東西應該工作:

load data infile 'myfile.csv' 
into table xxx 
fields terminated by ',' 
lines terminated by '\n' 
(@col1) 
set 
    col1 = str_to_date(@col1, '%Y%m%d%H%i') 
+0

謝謝dnagirl,這對我很好。現在全部運行起來。 – highfidelity

0

嘗試一個大整數格式,而不是日期格式

+0

爲什麼會有這種幫助?你能證明它如何幫助嗎? –

+0

一個大整數格式可以簡單地存儲YYYYMMDDHHMM數字而不用任何格式。之後您可以使用代碼格式化數字。只是一個想法;它可能或可能不是您的需求的最佳解決方案。 –