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

Tạo cột datetime MySQL với mặc định 0000-00-00

Thiết lập giá trị mặc định '0000-00-00 00:00:00' cho cột DATETIME

Sử dụng từ khóa DEFAULT trong định nghĩa cột.

Tạo bảng

mysql> create table DemoTable ( 
    EmployeeId int NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    EmployeeName varchar(20), 
    EmployeeJoiningDate datetime default '0000-00-00 00:00:00' 
) ENGINE=MyISAM, AUTO_INCREMENT=100; 
Query OK, 0 rows affected (0.21 sec)

Chèn dữ liệu không chỉ định ngày

mysql> insert into DemoTable(EmployeeName) values('Chris'); 
mysql> insert into DemoTable(EmployeeName) values('David'); 
mysql> insert into DemoTable(EmployeeName) values('Mike'); 
mysql> insert into DemoTable(EmployeeName) values('Sam');

Kết quả

+------------+--------------+---------------------+ 
| EmployeeId | EmployeeName | EmployeeJoiningDate | 
+------------+--------------+---------------------+ 
| 100        | Chris        | 0000-00-00 00:00:00 | 
| 101        | David        | 0000-00-00 00:00:00 | 
| 102        | Mike         | 0000-00-00 00:00:00 | 
| 103        | Sam          | 0000-00-00 00:00:00 | 
+------------+--------------+---------------------+

⚠️ Cảnh báo quan trọng:

  • Giá trị '0000-00-00' là ngày không hợp lệ (zero date)
  • MySQL 5.7+ với sql_mode=NO_ZERO_DATE (mặc định) sẽ CHỐI chèn giá trị này, báo lỗi
  • Chỉ hoạt động nếu tắt NO_ZERO_DATE trong sql_mode

Thay thế khuyến nghị:

  • Dùng NULL cho "chưa có ngày": datetime DEFAULT NULL
  • Dùng CURRENT_TIMESTAMP cho ngày tạo tự động
  • Dùng '1970-01-01 00:00:00' (epoch) nếu cần giá trị mặc định hợp lệ