質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

Q&A

解決済

4回答

1264閲覧

2014-01-1716:12:00 を 2014-01-17 16:12:00 にしたいがやり方わからず 助けてください

退会済みユーザー

退会済みユーザー

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

1グッド

0クリップ

投稿2016/10/12 14:04

お世話になります

2014-01-1716:12:00

2014-01-17 16:12:00
(-17の間と、16の間にスペースが入っている)
にしたいだけです

こういうレコードが沢山入った山があって
手作業で直せないレベルです

理由は、
csvで加工したデータが
2014-01-1716:12:00
みたいになってるので

2014-01-17 16:12:00
みたいにして
datetimeが使えるようにしたいのです

助けていただければ
ほんとうにたすかります

よろしくお願いいたします

suama👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

suama

2016/10/12 14:20

MySQLのタグが付いているのですが、DBのテーブルに入ったデータを一括置換したいのでしょうか。それとも、書き出したとか、インポートの元データになるファイル(CSV) を置換したいのでしょうか。
退会済みユーザー

退会済みユーザー

2016/10/12 19:48

suamaさま ご質問ありがとうございます 「インポートの元データになるファイル(CSV) を置換したい」です よろしくお願いいたします
suama

2016/10/12 23:24

ありがとうございます!
guest

回答4

0

ベストアンサー

正規表現による置換が行えない場合用に、あえてExcelを使ってみる方法で。
A列に問題の日付データが入っている状態で、B1セルに以下の式を入れてオートフィルで式をコピーしていけば欲しいデータ形式になります。

=LEFT(A1,10) & " " & RIGHT(A1,8)

後は実際のCSVファイルをExcelで開いてコピー・保存してください。

ただ、ExcelでCSVファイルを編集すると文字コードの関係で正しくExcelに表示されなかったり、保存の仕方でカンマ区切りではなくタブ区切りで保存されたりします。
元ファイルのバックアップは忘れずに。

投稿2016/10/13 02:14

KaedeKazane

総合スコア408

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/10/13 04:54

KaedeKazaneさま ありがとうございます!思っていたことが一発でできました 超初心者なのでこの回答が一番助かりました ほんとうにありがとうございます
guest

0

一旦、別のカラムに文字列として、MySQLに入れたあとで、substringやstr_to_date等で加工して、本来のカラムに更新すればよいのではないでしょうか。
今回の件では、str_to_dateの方が良いかと思います。
https://dev.mysql.com/doc/refman/5.6/ja/date-and-time-functions.html#function_str-to-date

投稿2016/10/12 21:00

popobot

総合スコア6586

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/10/13 04:58

icchiiさま 今回はこの方法を使わなくてすみましたが、str_to_dateという関数を知ることができ 今後データを叩く上で役にたちそうだと思いました ありがとうございます!
guest

0

MySQLの関数にSUBSTRINGっていうのがあります。
http://db.yulib.com/mysql/000042.html
それを使ったらできますね。

投稿2016/10/12 14:12

shi_ue

総合スコア4437

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/10/12 19:51

shi_ueさま ありがとうございます この関数も役に立ちそうです 覚えておきます(私の質問のしかたが悪くて申し訳ありません MySQLにインポートする前にこの操作を行なう必要があるので、今回のご質問は「csvの加工」になります)
shi_ue

2016/10/13 00:36

それじゃ、正規表現で置換できるテキストエディタを使って変換したらいいですね。
退会済みユーザー

退会済みユーザー

2016/10/13 04:58

shi_ueさま はい、おっしゃるとおりです ありがとうございます!
guest

0

質問させていただいたものです。
MySQL上に入ってしまったデータについては、上記の方が記載されている通り、substring等の関数で修正してあげれば良いと思います。

その上で、実際はインポート前の元になるCSVを修正したいとのことでしたので、ファイルの中身を置換する方法を記載しますね。

MacやUnix系のOSであれば、perlとかsedで置換してあげればいいと思います。

# もっと綺麗な書き方があるかもしれませんが... $ cat 元のcsv | perl -pe 's/(\d{4}-\d{2}-\d{2})(\d{2}:\d{2}:\d{2})/$1 $2/;'

お使いの環境がわからないので、上記ができないかもしれませんが、今時のエディタだと、パターンマッチで置換できる機能を持っていたりしますので、エディタにやらせるのでもいいかなと思います。(SublimeTextとか)

投稿2016/10/12 23:40

suama

総合スコア1997

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/10/13 04:57

suamaさま ありがとうございます! Macのターミナルでこの正規表現を実行してみましたが 一部分うまくいっていないところがあり(もとのファイルがかなりおかしいので、正規表現で認識しきれないのかもしれません) 今回はExcelでやる方法を選びました ただ、これから正規表現もきちんと理解しようと思っていたので こうして例文を書いてくださって、実際に動かしてみて そのように処理できたことが非常に参考になりましたので これを機に正規表現についても学びたいと思っています 本当にありがとうございました!
suama

2016/10/13 05:02

Excelの案を出してくださった方がいらっしゃいましたが、素晴らしいですね!私も参考になりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問