如何更改数据库中的日期

时间:2013-03-14 03:54:21

标签: mysql database date

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

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

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

3 个答案:

答案 0 :(得分: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

虽然处理日期的最佳方法是使用日期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) )

SQL Fiddle Demo