在我的 Mysql 数据库中,我有一组日期。如何将数据库中的每个日期增加 3 年?
例如当前日期是:2001 年 1 月 2 日
我希望日期增加三年:2004 年 1 月 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
虽然处理日期的最佳方法是使用日期数据类型(例如时间戳、日期时间等)而不是将其保存在VARCHAR
s
测试代码——
UPDATE date
SET `varchardate`= DATE_FORMAT(DATE_ADD( str_to_date(`varchardate`, '%d %M %Y'), INTERVAL 3 YEAR ) , '%d %M %Y')
检查 date_add 功能,它应该做的事情 - http://www.w3schools.com/sql/func_date_add.asp
下面的查询是更新日期列并更改为日期格式。
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 )
或者
第二个查询只是将年份更新 3。
update date1 set dates =
concat( SUBSTRING_INDEX( dates, ' ', 2 ) , ' ',
(SUBSTRING_INDEX( dates, ' ', -1 ) +3) )