Mysql更新时间列只改日期为指定日期不更改时间

场景

Mysql分表后同结构不同名称表之间复制数据以及Update语句只更新日期加减不更改时间:

Mysql分表后同结构不同名称表之间复制数据以及Update语句只更新日期加减不更改时间_霸道流氓气质的博客-CSDN博客

上面通过如下方式实现日期列增加指定天数。

UPDATE bus_vehicle_position_record20230801
SET record_date = DATE_ADD(record_date, INTERVAL 1 DAY)

如果相差时间过长,不想通过增加或者减少天数的方式实现,只想更改某时间列的日期为指定日期,

但时间段依然不变,可通过如下方式

注:

博客:
霸道流氓气质_C#,架构之路,SpringBoot-CSDN博客

实现

执行的sql为

UPDATE bus_vehicle_position_record20230810 SET record_date = ADDTIME(DATE('2023-08-10') + INTERVAL 0 HOUR,TIME(record_date))

其中bus_vehicle_position_record20230810 为表名,record_date 为要更改的时间列。

通过DATE函数获取指定日期字符的日期信息,再通过TIME函数获取之前数据的时间信息,再通过ADDTIME函数将其相加。

你可能感兴趣的:(数据库,mysql,数据库)