最初に要件について説明します。
user_amountテーブルが以前に設計されていた場合、日付を保存するフィールドはcreatTime、タイプはタイムスタンプ、日付は「2021-02-0117: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;
1.タイムスタンプを日付に変換する関数: 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;
3.データテーブルの日付フィールドを別のタイムスタンプフィールドに割り当てます。
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.更新実行後の結果