ruby on railsでsqlite3にインポートするcsvファイルがあります。 csvファイルにはMM/DD/YYYY形式の日付列があります。 sqlite3の日付はDD/MM/YYYYの形式です。 csvファイルを変更せずに同じフォーマットに変換するにはどうすればよいですか?Ruby on rails - csvをレールにインポートするときに日付形式を変更する
答えて
まず、SQLiteの日付を間違った形式で保存しています。ファインからSQLite manual:
2.2。日付と時刻のデータ型
SQLiteには、日付や時刻を格納するためのストレージクラスはありません。
TEXT
としてISO8601の文字列( "YYYY-MM-DD HH:MM:代わりに、SQLiteののビルトイン日付および時刻関数はTEXT
、REAL
、またはINTEGER
値として日付と時刻を格納することが可能であるSS .SSS ")。- [...]
あなたがで作業するためのSQLiteの機能を使用できるようにSQLiteので日付を格納する推奨方法は、ISO-8601形式(YYYY-MM-DD
)を使用してtext
列になりますそれらと彼らは正しく比較/並べ替えます。
date_for_sqlite = date.iso8601
:
Date#iso8601
メソッドを使用してISO-8601日付文字列にそれを変換し、その後
date = Date.strptime(date_string_from_csv, '%m/%d/%Y')
と:
行うには賢明なことは、着信日付がRubyの標準ライブラリからDate.strptime
を使用し解析することです
を入力し、date_for_sqlite
をデータベースに送信します。ボーナスとして、正気のデータベースはISO-8601のフォーマットされた日付を明白に理解するので、データベースを切り替えるとこの問題について心配する必要はありません。
あなたがstrftime
を使用し、あなたの非標準DD/MM/YYYY
形式を使用する必要がある場合:
date_for_sqlite = date.strftime('%d/%m/%Y')
ありがとうございます。私のCSVファイルには複数の行があり、 'namespace:db do do タスク:import_csv =>:環境do CSV.foreach(" sample_landslides.csv "、:headers => true)do | row | Landslide.create!(row.to_hash) 'ファイル全体をレールにします。私は現在の日付の列を削除し、それに変換された日付の列の日付の列をインポートすることを考えています。どうやってやるの? –
テーブルをドロップしてから、適切な日付形式で再インポートしてみませんか?そこに保存する必要がある新しいデータがありますか? –
- 1. ruby on railsのデフォルト日付形式を変更しますか?
- 2. Ruby on Rails、適切な日付形式のデータベースに保存
- 3. 異なる日付形式のMySQLにCSVをインポートする
- 4. Best_in_place変更の日付形式レール
- 5. 日付形式に変更するR
- 6. Ruby on RailsでDateTimeを単純な日付に変換する
- 7. Android Ruby on Railsタイムスタンプを日付に変換する
- 8. Ruby on rails csvファイルをデータベースにインポートするときのUnknow属性
- 9. Excelにエクスポートするときの日付形式の変更
- 10. Javascript日付形式を変更する
- 11. 日付形式を変更する
- 12. 文字列の時刻をレールの日付形式に変更する方法
- 13. Ruby on RailsをMySQLにインポートする
- 14. Ruby on Railsの日付でソートする?
- 15. 。インポート時の日付形式をSQL DBに変換する
- 16. Ruby on RailsからJRuby on Railsにプロジェクトを変更する
- 17. Ruby on rails - レールデータベース(MYSQL)を毎日csvファイルの値で更新するには?
- 18. PHPの日付形式をJavaScriptの日付形式に変換するには?
- 19. CSVの日付形式をMySQLの日付形式
- 20. 日付の変更形式
- 21. 変更日付形式
- 22. JspでMysqlの形式に日付を変更するには?
- 23. インデックスページを変更する - Ruby on Rails
- 24. Ruby on Railsのパスワードオーバーライドを変更する
- 25. Ruby on Rails - データベースに将来の日付を挿入する
- 26. 日付形式を別の形式に変換する方法
- 27. 日付形式を別の形式に変換するR
- 28. AngularJS - タイムスタンプの日付形式をJavaScript形式に変換する
- 29. 日付形式をExcel形式に変換する
- 30. javascriptで日付形式を別の形式に変換する
あなたのSQLiteデータベースでは、日付は、私は願って、実際の日付の列に格納されて? –
はい、それは列に格納されます –
明らかに、それは列ですが、その列の種類は何ですか? –