gpt4 book ai didi

php - 使用 Laravel 和 MSSQL 将 nvarchar 转换为 datetime 数据类型时出错

转载 作者:行者123 更新时间:2023-12-05 02:16:22 24 4
gpt4 key购买 nike

我在 IIS 上成功安装了 Laravel。我也成功地用 laravel 连接了 MSSQL DB。我运行 artisan 命令 php artisan make:authphp artisan migrate。制作登录/注册页面。现在,当我注册一个新用户时,我得到一个错误。:

SQLSTATE[22007]: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Bei der Konvertierung eines nvarchar-Datentyps in einen datetime-Datentyp liegt der Wert außerhalb des gültigen Bereichs. (SQL: insert into [users] ([name], [email], [password], [updated_at], [created_at]) values (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))

翻译成英文:

The conversion of a nvarchar data type to a datetime data type resulted in an out-of-range datetime value."

我的迁移看起来像这样:

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();
});
}

迁移后我的数据库如下所示: enter image description here

在 MSSQL 中,我使用的是 SQL_Latin1_General_CP1_CI_AS。有人知道问题出在哪里吗?

更新'快速解决方案:我将 mssql 列 created_at 和 updated_at 更改为 nvarchars(50)

更新1另一种解决方案是用这个方法覆盖它

public function fromDateTime($value)
{
// Only for MSSQL
if(env('DB_CONNECTION') == 'sqlsrv') {
return Carbon::parse(parent::fromDateTime($value))->format('Y-d-m H:i:s:000');
}
return $value;
}

最佳答案

如果有人遇到这个问题,我解决了使用protected $dateFormat = 'd-m-Y H:i:s';//根据需要格式化在模型中。

关于php - 使用 Laravel 和 MSSQL 将 nvarchar 转换为 datetime 数据类型时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49999319/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com