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

Cập nhật cột TIMESTAMP trong MySQL

Sử dụng hàm NOW() hoặc CURRENT_TIMESTAMP trong câu UPDATE để gán thời gian hiện tại cho cột TIMESTAMP.

Tạo bảng và dữ liệu

mysql> CREATE TABLE DemoTable (
    -> PunchOut TIMESTAMP,
    -> PunchStatus TINYINT(1)
    -> );
Query OK, 0 rows affected (0.51 sec)
mysql> INSERT INTO DemoTable VALUES('2019-01-31 6:30:10', 1), ('2019-02-06 4:10:13', 0), ('2018-12-16 03:00:30', 0), ('2016-11-25 02:10:00', 1);
Query OK, 4 rows affected (0.22 sec)

Cập nhật PunchOut = NOW() cho các hàng PunchStatus = 0

Giả sử thời điểm chạy: 2019-06-30 13:43:45

mysql> UPDATE DemoTable SET PunchOut = NOW() WHERE PunchStatus = 0;
Query OK, 2 rows affected (0.19 sec)

Kết quả:

+---------------------+-------------+
| PunchOut            | PunchStatus |
+---------------------+-------------+
| 2019-01-31 06:30:10 | 1           |
| 2019-06-30 13:43:45 | 0           |
| 2019-06-30 13:43:45 | 0           |
| 2016-11-25 02:10:00 | 1           |
+---------------------+-------------+
4 rows in set (0.00 sec)

Lưu ý: Cột TIMESTAMP với DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP sẽ tự cập nhật khi hàng thay đổi. Truy vấn trên ghi đè hành vi đó.