我在IIS上成功安装了Laravel。我用laravel成功连接了MSSQL DB。我运行artisan命令php artisan make:auth
和php artisan migrate
。进行登录/注册页面。现在,当我注册一个新用户时,我收到了一个错误。:
SQLSTATE [22007]:[Microsoft] [SQL Server的ODBC驱动程序17] [SQL 服务器] Bei der Konvertierung eines nvarchar-Datentyps in einen datetime-Datentyp liegt derWertaußerhalbdesgültigenBereichs。 (SQL:插入[users]([name],[email],[password],[updated_at], [created_at])值(john doe,j.doe @ example.com, $ 2Y $ 10 $ zPpJKp.clN8 / SrhBhrupmO1ydWFb6UmrAUaD0Wid7fQHt85ieSwNi, 2018-04-24 10:03:26.286,2018-04-24 10:03:26.286))
这翻译成英文:
导致nvarchar数据类型转换为日期时间数据类型 超出范围的日期时间值。“
我的迁移看起来像这样:
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->tinyInteger('active')->default(1);
$table->rememberToken();
$table->timestamps();
});
}
迁移后
在MSSQL中,我正在使用SQL_Latin1_General_CP1_CI_AS
。
有任何人知道这个问题是什么吗?
更新 '快速解决方案:我将mssql列created_at和updated_at更改为nvarchars(50)
答案 0 :(得分:0)
如果有人遇到这个问题,我解决了 protected $ dateFormat ='d-m-Y H:i:s'; //根据需要设置格式 在模型中。
答案 1 :(得分:0)
如果Jefers的答案不起作用,请在您的模型中尝试以下方法:
public function getDateFormat(){
return 'Y-d-m H:i:s.v';
}