sql语句只修改年月日 不修改时分秒

来源:V型知识库 2018年08月24日 08:42 浏览:4588

最近得到一个需求,利用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

修改即可。