我有我導入到MySQL的CSV文件,有在CSV文件中的日期字段的格式爲這樣:30.09.2011CSV文件導入到MySQL的日期格式
我有一個PHP頁面從數據庫中提取數據,我想按日期字段排序。目前,它是看到的日期作爲字符串和訂貨像這樣..
30.09.2011 2012年6月2日 二○一一年十月七日 2008年9月12日
的感謝!
我有我導入到MySQL的CSV文件,有在CSV文件中的日期字段的格式爲這樣:30.09.2011CSV文件導入到MySQL的日期格式
我有一個PHP頁面從數據庫中提取數據,我想按日期字段排序。目前,它是看到的日期作爲字符串和訂貨像這樣..
30.09.2011 2012年6月2日 二○一一年十月七日 2008年9月12日
的感謝!
請勿爲此使用PHP。在源頭修正它。也就是說,在數據類型爲DATE
的MySQL表中添加一個新列。
然後,您可以在導入後使用STR_TO_DATE()
填充它。
UPDATE your_table SET new_date_column = STR_TO_DATE(old_str_column,'%d.%m.%Y');
這樣做會使排序,以及計算,格式等在未來更容易。
如果您定期提取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將要做的更快。
做了訣竅 - 謝謝 – JakeKempo 2012-07-20 02:03:04
你應該*標記*最好解決你的問題的答案,點擊右邊的複選標記。歡迎來到Stack Overflow。 – 2012-07-20 19:22:03
感謝您的回答。我試着用'%m /%d /%y'來解決這個問題無濟於事。任何理由,這將無法正常工作? – bsapaka 2014-04-14 20:13:53