Я думаю, вам следует прочитать о DATETIME и TIMESTAMP:
Оба типа данных хранят данные в формате «ГГГГ-ММ-ДД ЧЧ:ММ:СС» и включают дату и время. Несмотря на это сходство, они имеют следующие отличия:
Диапазон — тип данных Datetime поддерживает дату вместе со временем в диапазоне от 1000-01-01 00:00:00 до 9999-12-31 23:59:59. Но тип данных timestamp поддерживает дату вместе со временем в диапазоне от «1970-01-01 00:00:01» до «2038-01-19 08:44:07».
Размер — Datetime требует 5 байтов вместе с 3 дополнительными байтами для хранения данных в долях секунд. С другой стороны, тип данных timestamp требует 4 байта вместе с 3 дополнительными байтами для хранения данных в долях секунд. Но до MySQL 5.6.4 DateTime требовал 8 байтов вместе с 3 дополнительными байтами для хранения данных в долях секунд.
Преобразование из одного часового пояса в другой — на самом деле в MySQL5+ значение метки времени преобразуется из текущего времени в UTC и наоборот, в то время как дата-время не выполняет никакого преобразования.
Индексирование — индексирование данных с отметками времени может быть выполнено, но данные даты и времени не могут быть проиндексированы.
Кэширование запроса — запросы с типом данных метки времени могут быть кэшированы, но запросы с типом данных даты и времени не могут быть кэшированы.
Таким образом, вы не можете сохранить значение даты и времени: «0000-00-00 00:00:00» для столбца date_to
Метод change()
позволяет изменять type and attributes
существующих столбцов, не изменяя value
.
Попробуйте удалить столбец метки времени и повторно добавить его как столбец метки времени с нулевым значением:
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('gamesessions', function (Blueprint $table) {
$table->dropColumn('date_to');
});
Schema::table('gamesessions', function (Blueprint $table) {
$table->timestamp('date_to')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('gamesessions', function (Blueprint $table) {
$table->dropColumn('date_to');
});
Schema::table('gamesessions', function (Blueprint $table) {
$table->timestamp('date_to');
});
}
Подробнее читайте здесь: В чем разница между типами данных MySQL DATETIME и TIMESTAMP?
person
Ngô Minh
schedule
24.11.2020