-1

現在、データベースに日付を (文字列形式で) mm/dd/yyyy として保存しています。

並べ替えのために、すべてのエントリを yyyy/mm/dd に置き換える必要があります。

明確にするために、私は PHP 開発者ですが、生の MySql はそれほど強力ではありません。部分文字列を使用して日付を再配置することでこれを行うことを考えていました。(私は最初に PHP で試しましたが、これほど多くのデータ (約 50 万行) を処理するには時間がかかりすぎます)。

私はこれについて正しく行っていますか?もしそうなら、どのようにデータを「ループ」して、現在の繰り返しに substr 変数を割り当てますか?

注: ここで str_to_date を試してみたところ、フィールドの半分が無効になりました。理由はよくわかりません。

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

4

2 に答える 2

1

これは挿入文です

  INSERT INTO yourtable (datefield) VALUES (str_to_date(date, '%Y/%m/%d'));

そしてこれがアップデート

 UPDATE Table SET date=STR_TO_DATE('date','%Y/%m/%d')

これを試して

   UPDATE Table SET date = DATE_FORMAT('date', %Y/%m/$d);
于 2013-03-08T17:19:35.223 に答える
0

列が一貫したmm/dd/yyyy形式である場合、これはうまくいくと思います

UPDATE mytable
SET date = CONCAT(right(date,4), '/', left(date,5))
于 2013-03-08T17:20:10.360 に答える