2

私のMysqlデータベースには、一連の日付があります。データベース内のすべての日付を3年ずつ増やすにはどうすればよいですか?

たとえば、現在の日付は2001年1月2日です。

日付を3年増やしたい:2004年1月2日

4

3 に答える 3

2

これを試して -

UPDATE TABLE set fieldname =  DATE_ADD( fieldname, INTERVAL 3 YEAR ) 

詳細については、datesこのリンクを確認してください:-

function_date-add

ワーキングフィドル - http://sqlfiddle.com/#!2/9c669/1

編集

このソリューションは、日付型がVARCHARであり、日付の構造が次のように更新されます-2 January 2001

2 January 2004の間隔で日付を更新します3

VARCHAR日付を処理する最善の方法は、日付をsに保存する代わりに日付データ型 (タイムスタンプ、日時など) を使用することですが、

テスト済みコード --

UPDATE date 
SET `varchardate`= DATE_FORMAT(DATE_ADD(  str_to_date(`varchardate`, '%d %M %Y'), INTERVAL 3 YEAR ) , '%d %M %Y')
于 2013-03-14T04:04:49.330 に答える
0

以下のクエリは、日付列を更新し、日付形式にも変更します。

update date1 set dates = 
DATE_ADD( (str_to_date(concat( 
SUBSTRING_INDEX( dates,  ' ', 1 ),'-',
Substring(SUBSTRING_INDEX( SUBSTRING_INDEX( dates,  ' ', 2 ) ,  ' ', -1 ),1,3) ,
'-', 
SUBSTRING_INDEX( dates,  ' ', -1 )),'%d-%M-%Y')), INTERVAL 3 YEAR )

また

2 番目のクエリは、年を 3 だけ更新するだけです。

update date1 set dates = 
concat( SUBSTRING_INDEX( dates,  ' ', 2 )  ,  ' ', 
(SUBSTRING_INDEX( dates,  ' ', -1 ) +3) )

SQL フィドルのデモ

于 2013-03-14T06:22:22.927 に答える
0

date_add 関数を確認してください。

于 2013-03-14T04:00:00.087 に答える