2

在我的 Mysql 数据库中,我有一组日期。如何将数据库中的每个日期增加 3 年?

例如当前日期是:2001 年 1 月 2 日

我希望日期增加三年:2004 年 1 月 2 日

4

3 回答 3

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

虽然处理日期的最佳方法是使用日期数据类型(例如时间戳、日期时间等)而不是将其保存在VARCHARs

测试代码——

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

检查 date_add 功能,它应该做的事情 - http://www.w3schools.com/sql/func_date_add.asp

于 2013-03-14T04:00:00.087 回答
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 )

或者

第二个查询只是将年份更新 3。

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

SQL 小提琴演示

于 2013-03-14T06:22:22.927 回答