laravel 将nvarchar数据类型转换为datetime数据类型时创建了一个越界值

wvt8vs2t  于 2022-12-24  发布在  其他
关注(0)|答案(1)|浏览(136)

我迁移MySQL数据库到SQL Server 2019.
一切都运行良好的MySQL
SQLSTATE[22007]:[Microsoft][用于SQL Server的ODBC驱动程序17][SQL Server]将nvarchar数据类型转换为日期时间数据类型时创建了一个超出界限的值(SQL:插入到[角色]([名称]、[保护名称]、[更新时间]、[创建时间])值中(代理控制器、API,2022年12月21日14:30:18.864,2022年12月21日14:30:18.864))
我找到了解决办法

<?php
namespace App;

use Illuminate\Database\Eloquent\Model;
use Carbon\Carbon;

class ModelFormat extends Model
{
   public function fromDateTime($value)
   {
      return Carbon::parse(parent::fromDateTime($value))->format('Y-d-m H:i:s.v');
   }
}

但是它太粗糙了,我必须修改很多东西,在那之后它并不适用于所有的东西。
在sql server方面有没有像修改字符编码或其他东西这样的解决方案?

tjjdgumg

tjjdgumg1#

我的问题是:因为我的默认语言是法语,所以我把它改成了英语
我发现了这个

    • 解决方案**

您可以通过在中为每个用户选择默认语言来更改该用户的默认日期格式
SQL Management Studio〉安全性〉登录名〉{用户属性}〉默认语言。
您可以看到每种语言的日期格式
执行sp_帮助语言

相关问题