先说一下需求:
user_amount表之前设计时,保存日期的字段是creatTime, 类型timestamp,保存的是‘2021-02-01 17:50:21’这种格式的日期。
user_amount表设计变动后,需要把日期保存在create_time字段里,类型int ,保存的是"1612173021"这种格式的时间戳。
DROP TABLE IF EXISTS `user_amount`;
CREATE TABLE `user_amount` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`creatTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`create_time` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;
一、将时间戳转换成日期的函数:FROM_UNIXTIME
select FROM_UNIXTIME('1612173021','%Y年%m月%d') from user_amount;
二、将日期转换成时间戳的函数:UNIX_TIMESTAMP
select UNIX_TIMESTAMP('2021-02-01 17:50:21') from user_amount;
三、把数据表里日期字段,赋值给另一个时间戳字段:
1、执行代码前
select id,creatTime,create_time from user_amount;
2、更新操作
UPDATE user_amount u1, pay_user_amount u2 SET u1.create_time = UNIX_TIMESTAMP(u2.creatTime) where u1.id=u2.id;
3、执行完更新后的结果