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

Cập nhật toàn bộ cột DATETIME thành ngày hiện tại (CURDATE) trong MySQL

Giới thiệu

Sử dụng UPDATE với CURDATE() để gán ngày hiện tại (phần giờ = 00:00:00) cho tất cả hàng trong cột DATETIME.

Ví dụ thực hành

1. Tạo bảng DemoTable821

mysql> CREATE TABLE DemoTable821 (AdmissionDate DATETIME);

2. Chèn dữ liệu ngày cũ

mysql> INSERT INTO DemoTable821 VALUES 
    ('2019-01-21'),('2018-11-02'),('2016-12-31'),('2015-03-19');

3. Cập nhật tất cả thành ngày hôm nay (giả sử 2019-08-03)

mysql> UPDATE DemoTable821 SET AdmissionDate = CURDATE();

4. Kết quả

+---------------------+
| AdmissionDate       |
+---------------------+
| 2019-08-03 00:00:00 |
| 2019-08-03 00:00:00 |
| 2019-08-03 00:00:00 |
| 2019-08-03 00:00:00 |
+---------------------+

Các biến thể

-- Cập nhật thành ngày giờ hiện tại (có giờ:phút:giây)
UPDATE DemoTable821 SET AdmissionDate = NOW();

-- Chỉ cập nhật một số hàng
UPDATE DemoTable821 SET AdmissionDate = CURDATE() WHERE Id > 2;

-- Dùng DATE() để cắt giờ từ NOW()
UPDATE DemoTable821 SET AdmissionDate = DATE(NOW());

⚠️ Cảnh báo

  • Câu lệnh không có WHERE sẽ cập nhật toàn bộ bảng.
  • Luôn chạy SELECT cùng điều kiện trước để xác nhận.
  • Backup hoặc dùng transaction nếu cần an toàn.

Lưu ý về CURDATE() vs NOW()

  • CURDATE() → DATE (YYYY-MM-DD). Gán vào DATETIME → 00:00:00.
  • NOW() → DATETIME (YYYY-MM-DD HH:MM:SS).
  • Nếu cột là DATE, cả hai đều OK (phần giờ bị bỏ).