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 đó.