私はmysqlにインポートしているcsvファイルを持っています.csvファイルには次のようにフォーマットされた日付フィールドがあります:30.09.2011
データベースからデータを取得する php ページがあり、日付フィールドで並べ替えたいと考えています。現時点では、日付を文字列として見て、そのように並べています..
30.09.2011 6.02.2012 7.10.2011 9.12.2008
ありがとう!
これには PHP を使用しないでください。ソースで修正します。つまり、 datatype の MySQL テーブルに新しい列を追加しますDATE
。
次に、インポート後に を使用してデータを入力できますSTR_TO_DATE()
。
UPDATE your_table SET new_date_column = STR_TO_DATE(old_str_column,'%d.%m.%Y');
そうすることで、並べ替え、計算、書式設定などが将来的に簡単になります。
定期的に CSV 内のデータを抽出する場合、抽出 SQL を変更して、MySQL がデータを吸い込むのに適した形式で日付が出力されるようにしてみませんか?
たとえば、オラクルから抽出している場合は、変更できます
select
yourDateColumn
from
yourTable
に
select
to_char(yourDateColumn, 'YYYY-MM-DD') as yourMySQLDateColumn
from
yourTable
次に、Mysql の日付データ型に直接インポートできますが、PHP のアップロード全体をスキップして、MySQL Load Data Infileコマンドに直接移動することもできます。これは、PHP が実行する何よりも高速です。