Вставка NULL в метку времени MySQL

Я наблюдаю неожиданное поведение с вставкой / обновлением NULL в столбце timestamp MySQL.

Рассмотрим следующие утверждения.

create table temp(id int, hireDate timestamp default 0); insert into temp (id) values(1); insert into temp (id, hireDate) values(2, null); select * from temp; id hireDate ----------------------------- 1 2 2012-09-19 10:54:10.0 

Первая вставка (когда hiredate не указывается в SQL, rentDate имеет значение null(0) которое ожидается.

Однако, когда явный null передается в SQL, текущее время даты вставляется, что является неожиданным. Почему это происходит?

Примечание: Hibernate использует второй тип вставки и, следовательно, становится проблемой. Как вставить нуль в столбец timestamp?

http://dev.mysql.com/doc/refman/5.0/en/timestamp-initialization.html

Кроме того, вы можете инициализировать или обновить любой столбец TIMESTAMP до текущей даты и времени, присвоив ему значение NULL, если только оно не было определено атрибутом NULL, чтобы разрешать значения NULL.

Вы можете вставлять и обновлять NULL в timestamp MySQL.

Создайте таблицу:

 create table penguins(id int primary key auto_increment, the_time timestamp NULL); 

Вставьте несколько строк:

 insert into penguins(the_time) values (now()); insert into penguins(the_time) values (null); insert into penguins(the_time) values (0); insert into penguins(the_time) values ('1999-10-10 01:02:03'); 

Какие принты:

 select * from penguins 1 2015-01-23 15:40:36 2 3 0000-00-00 00:00:00 4 1999-10-10 01:02:03 

Столбец с the_time с the_time данных: timestamp во второй строке имеет значение NULL.

Вам нужно изменить значение по умолчанию для столбца leaseDate. Значение по умолчанию должно быть нулевым

Эта

 create table temp(id int, hireDate timestamp default 0); 

Должно быть:

 create table temp(id int, hireDate timestamp null); 

если вы хотите вставить NULL в hireDate colour, то вам нужно указать null

INSERT INTO temp (id, hireDate) VALUES(3, null);

Поскольку Datatype of hireDate является timestamp и при создании столбца он должен быть определен как null