laravel迁移的timestapce('my_col_name')为什么返回语法错误或访问冲突:1067'my_col_name'的默认值无效

时间:2019-02-21 12:27:04

标签: laravel

在迁移中,我有两个额外的时间戳记

  

$ table-> timestamp('starts_at');

     

$ table-> timestamp('ends_at');

当我运行php artisan migration时,我不希望它们为可为空的问题 我返回

  

语法错误或访问冲突:1067'ends_at'的默认值无效

我在底部有$ table-> timestamps()。 如何获得自定义时间戳列,并且不能为空

一种解决方法是使用laravel 5.7简单地将nullable()放在末尾,而不是解决方法。

2 个答案:

答案 0 :(得分:0)

我希望您正在寻找该字段的日期时间数据类型。 尝试下面的代码。

$table->datetime('starts_at');
$table->datetime('ends_at');

如果您想将此字段设置为可空值,请尝试以下操作。

$table->dateTime('starts_at')->nullable();
$table->dateTime('ends_at')->nullable();

答案 1 :(得分:-2)

您应该尝试以下操作:

 $table->timestamp('starts_at');

 $table->timestamp('ends_at')->default('0000-00-00 00:00:00');