在我的Mysql数据库中,我有一组日期。 如何将数据库中的每个日期增加3年?
例如,当前日期是: 2001年1月2日
我希望日期增加三年: 2004年1月2日
答案 0 :(得分:2)
试试这个 -
UPDATE TABLE set fieldname = DATE_ADD( fieldname, INTERVAL 3 YEAR )
有关更多信息并与dates
分享,您可以查看以下链接: -
工作小提琴 - http://sqlfiddle.com/#!2/9c669/1
修改强>
此解决方案更新日期类型为 VARCHAR ,日期结构如 - 2 January 2001
它会按2 January 2004
3
虽然处理日期的最佳方法是使用日期DATATYPE(ex timestamp,datetime等)而不是将其保存在VARCHAR
s
经过测试的代码 -
UPDATE date
SET `varchardate`= DATE_FORMAT(DATE_ADD( str_to_date(`varchardate`, '%d %M %Y'), INTERVAL 3 YEAR ) , '%d %M %Y')
答案 1 :(得分:0)
检查date_add函数,它应该做的事情 - http://www.w3schools.com/sql/func_date_add.asp
答案 2 :(得分: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 )
OR
第二个查询只是将年份更新为3。
update date1 set dates =
concat( SUBSTRING_INDEX( dates, ' ', 2 ) , ' ',
(SUBSTRING_INDEX( dates, ' ', -1 ) +3) )