Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tăng nhiều TIMESTAMP cùng lúc với biến user-defined trong MySQL

Cập nhật hàng loạt TIMESTAMP: Cộng thêm giây dùng biến và INTERVAL

Sử dụng biến user-defined lưu giá trị tăng (giây), kết hợp INTERVAL @var SECOND trong UPDATE để cộng đồng thời cho nhiều hàng.

1. Tạo bảng và chèn dữ liệu

mysql> CREATE TABLE DemoTable (DueDatetime TIMESTAMP);
mysql> INSERT INTO DemoTable VALUES
    ('2019-01-31 12:30:40'), ('2019-09-06 10:00:00'), ('2019-09-07 11:10:24');

2. Xem dữ liệu ban đầu

mysql> SELECT * FROM DemoTable;
+-----------------------+
| DueDatetime           |
+-----------------------+
| 2019-01-31 12:30:40   |
| 2019-09-06 10:00:00   |
| 2019-09-07 11:10:24   |
+-----------------------+

3. Thiết lập biến và UPDATE

mysql> SET @secondValue := 12;
mysql> UPDATE DemoTable
    SET DueDatetime = DueDatetime + INTERVAL (@secondValue) SECOND;

Kết quả: Query OK, 3 rows affected

4. Kiểm tra kết quả (mỗi hàng +12 giây)

mysql> SELECT * FROM DemoTable;
+-----------------------+
| DueDatetime           |
+-----------------------+
| 2019-01-31 12:30:52   |
| 2019-09-06 10:00:12   |
| 2019-09-07 11:10:36   |
+-----------------------+

Giải thích:

  • SET @secondValue := 12: Gán 12 giây vào biến session
  • INTERVAL (@secondValue) SECOND: Tạo interval 12 giây từ biến
  • DueDatetime + INTERVAL ...: Cộng interval vào timestamp
  • Áp dụng cho TẤT CẢ 3 hàng (không có WHERE)

Các đơn vị INTERVAL hỗ trợ:

Đơn vịVí dụ
SECONDINTERVAL 30 SECOND
MINUTEINTERVAL 5 MINUTE
HOURINTERVAL 2 HOUR
DAYINTERVAL 1 DAY
MONTHINTERVAL 3 MONTH
YEARINTERVAL 1 YEAR
Kết hợpINTERVAL '1 12:30:00' DAY_SECOND

Lưu ý: TIMESTAMP có múi giờ (timezone), DATETIME không. INTERVAL hoạt động tương tự cho cả hai.

Ứng dụng: Điều chỉnh múi giờ hàng loạt, dịch chuyển deadline, sync thời gian server.