如何在 MySQL 中更新比上一条记录大 10 秒的时间间隔?

  • 本文关键字:时间 记录 一条 MySQL 更新 mysql sql
  • 更新时间 :
  • 英文 :


我尝试过这个查询,但它不起作用:

UPDATE phonebooks SET created_at = DATE_ADD(created_at, INTERVAL 10 second)

我目前的记录是这样的:

IDDATE
12022-03-24 10:30:34
22022-03-24 10:30:34
32022-03-24 10:30:34
42022-03-24 10:30:34
52022-03-24 10:30:34
62022-03-24 10:30:34
72022-03-24 10:30:34

现在你只是在每一行增加 10 秒,但你需要一些东西来增加你的间隔,这取决于你要更新的行。根据您的示例,您可以使用 ID 作为乘数。

UPDATE phonebooks SET created_at = DATE_ADD(created_at, INTERVAL 10 * id second)

如果您的 ID 中有间隙,这将不完全按照指定工作。

表中未知位置的动态解决方案。 将使用用户定义的变量。

时间的起点由 UPDATE WHERE 子句确定

CREATE TABLE table1 (
`ID` INTEGER,
`DATE` VARCHAR(19)
);
INSERT INTO table1
(`ID`, `DATE`)
VALUES
('1', '2022-03-24 10:30:34'),
('2', '2022-03-24 10:30:34'),
('3', '2022-03-24 10:30:34'),
('4', '2022-03-24 10:30:34'),
('5', '2022-03-24 10:30:34'),
('6', '2022-03-24 10:30:34'),
('7', '2022-03-24 10:30:34');
SET @date = ''
UPDATE table1 SET `DATE` = IF(@date = '', @date := DATE_ADD(`DATE`, INTERVAL 10 second), @date := DATE_ADD(@date, INTERVAL 10 second) )
WHERE `DATE` >= '2022-03-24 10:30:34'
SELECT * FROM table1
身份证 |日期               -: |:------------------  1 |2022-03-24 10:30:44  2 |2022-03-24 10:30:54  3 |2022-03-24 10:31:04  4 |2022-03-24 10:31:14  5 |2022-03-24 10:31:24  6 |2022-03-24 10:31:34  7 |2022-03-24 10:31:44

db<>在这里摆弄

最新更新