如果你的表看起来像这样:
create table foo (
name VARCHAR(50),
dob DATETIME DEFAULT '1900-01-01 00:00:00'
);
您应该注意,默认值并不意味着强制要求.您仍然可以插入不同的值或根据自己的喜好更新行:
insert into foo (name) values ('Jim'), ('Joe'), ('Jack');
insert into foo (name, dob) values ('Jill', '1999-12-31 23:59:59');
update foo set dob = current_timestamp where name='Jack';
那可能发生了什么.
至于有一个00:00:00的值,它是MySQL提供的已知错误/功能.根据您的SQL模式,您可以存储无效或不完整的日期.
编辑:为避免插入稿件日期,您需要强化SQL模式:
mysql> SET sql_mode = '';
Query OK, 0 rows affected (0.00 sec)
mysql> UPDATE foo SET dob='invalid' WHERE name='Jim';
Query OK, 1 row affected, 1 warning (0.02 sec)
Rows matched: 1 Changed: 1 Warnings: 1
mysql> SET sql_mode = 'STRICT_AL