私は、フォーマットYYYY-MM-DDにMYSQL - 2011年に2020年からの日付の年を変更
を日付の束を持っている。しかし、私は2020-MM-DDで一年中
を持って、私はそれを変更したいです2011-MM-DD
どうすればこの問題を解決できますか?
私は、フォーマットYYYY-MM-DDにMYSQL - 2011年に2020年からの日付の年を変更
を日付の束を持っている。しかし、私は2020-MM-DDで一年中
を持って、私はそれを変更したいです2011-MM-DD
どうすればこの問題を解決できますか?
UPDATE YourTable
SET YourDateColumn = SUBDATE(YourDateColumn, INTERVAL 9 YEAR);
お返事ありがとうございます。私はちょうどそれを試してみましたが、それは実際に1年に1つ追加しました。つまり、2020年から2021年に私の日付を作りました。 – Chinmay
申し訳ありませんが、私は質問を誤って入力しました。実際には、私の日付は2020-MM-DDの形式であり、それを2010-MM-DDに変換したいのです。大変申し訳ございません。 – Chinmay
@ChinmayMurugkar 2020年から2011年に行くには、 'SUBDATE(YourDateColumn、INTERVAL 9 YEAR)'を使用してください。これを反映する答えを編集しました。 –
UPDATE YourTable
SET YourDateColumn = ADDDATE(YourDateColumn, INTERVAL 1 YEAR)
WHERE YourDateColumn >= '2010-01-01'
AND YourDateColumn <= '2010-12-31';
あなたのテーブルがダウンし、日付フィールドにインデックスを持っていない場合、あなたはこれで逃げることができます:
UPDATE YourTable
SET YourDateColumn = ADDDATE(YourDateColumn, INTERVAL 1 YEAR)
WHERE YEAR(YourDateColumn) = 2010;
を2020年のあなたの日付の問題を解決するには2021年にこれを実行:
UPDATE YourTable
SET YourDateColumn = ADDDATE(YourDateColumn, INTERVAL -1 YEAR)
WHERE YEAR(YourDateColumn) = 2021;
BTW私はJoe Stefanelliの元のコードをコピーして以来、彼の+1!
私はあなたにも、「更新」を積極的に速くSUBDATE
機能付き声明よりも、私はにおよそ10mlの液体フッ化水素を圧入それを取っている間、合理的に高速であると考えることができる(質問への更なる観光客のために)を追加したいと思います。 1時間で2.3兆行に影響を与えるSUBDATE
は半分の時間を費やしました。
UPDATE Table SET DateTimeField = SUBDATE(DateTimeField, INTERVAL -x YEAR);
ここで、xは新しい年の値として追加する負の数です。 正直言って私はこれがなぜ起こるのか無視しますが、うまくいきます。
問題の列のデータ型は? –
列のデータ型は、 – Chinmay
です。[This](http://stackoverflow.com/questions/14491906/changing-year-in-mysql-date)one is simple solution –