2012-07-20 94 views
2

我有我導入到MySQL的CSV文件,有在CSV文件中的日期字段的格式爲這樣:30.09.2011CSV文件導入到MySQL的日期格式

我有一個PHP頁面從數據庫中提取數據,我想按日期字段排序。目前,它是看到的日期作爲字符串和訂貨像這樣..

30.09.2011 2012年6月2日 二○一一年十月七日 2008年9月12日

的感謝!

回答

2

請勿爲此使用PHP。在源頭修正它。也就是說,在數據類型爲DATE的MySQL表中添加一個新列。

然後,您可以在導入後使用STR_TO_DATE()填充它。

UPDATE your_table SET new_date_column = STR_TO_DATE(old_str_column,'%d.%m.%Y'); 

這樣做會使排序,以及計算,格式等在未來更容易。

+0

做了訣竅 - 謝謝 – JakeKempo 2012-07-20 02:03:04

+1

你應該*標記*最好解決你的問題的答案,點擊右邊的複選標記。歡迎來到Stack Overflow。 – 2012-07-20 19:22:03

+0

感謝您的回答。我試着用'%m /%d /%y'來解決這個問題無濟於事。任何理由,這將無法正常工作? – bsapaka 2014-04-14 20:13:53

0

如果您定期提取CSV中的數據,爲什麼不只是修改提取SQL,以便日期以正確的格式出現,以便MySQL將其吸收進去?

如果您從Oracle例如提取,你可以改變

select 
    yourDateColumn 
from 
    yourTable 

select 
    to_char(yourDateColumn, 'YYYY-MM-DD') as yourMySQLDateColumn 
from 
    yourTable 

然後你就可以直接導入到MySQL中的日期數據類型,但你也可以跳過整個PHP上傳並移動到MySQL Load Data Infile命令,這將比任何PHP將要做的更快。