最近得到一个需求,利用sql语句,修改数据库中几十万条数据中某个时间字段的年,只改年份,由于数据是2016年的,需求是把2016年改成2018年,月日时分秒不变,故上网查了下,也验证了,分享给大家
首先如上图所示,数据未2016年,我们利用sql函数DATE_ADD来只修改年份,代码如下
SELECT id,DATE_ADD(add_time,INTERVAL 2 year) AS datetimes FROM content where id=2
date_add函数,第一个参数为要修改的字段,由于从2016年修改到2018年,故跨度为2,第二个参数是2,如修改到2017年,那么参数便是1,效果如下
实际上上述实现sql语句利用的是select,如果要更新的话,则sql语句实现如下
update content set add_time = date_add(add_time, interval 1 year) where id=2
修改月,日,时分秒等实现如下
select date_add(@dt, interval 1 day); - 加1天 select date_add(@dt, interval 1 hour); -加1小时 select date_add(@dt, interval 1 minute); - 加1分钟 select date_add(@dt, interval 1 second); -加1秒 select date_add(@dt, interval 1 microsecond);-加1毫秒 select date_add(@dt, interval 1 week);-加1周 select date_add(@dt, interval 1 month);-加1月 select date_add(@dt, interval 1 quarter);-加1季 select date_add(@dt, interval 1 year);-加1年
上述都是select,如果想更新的话大家根据
update 表名 set 日期字段 = date_add(日期字段, interval 1 year) where id=2
修改即可。