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
NULLcho "chưa có ngày":datetime DEFAULT NULL - Dùng
CURRENT_TIMESTAMPcho 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ệ