gpt4 book ai didi

Laravel sqlsrv - 无法创建时间戳()

转载 作者:行者123 更新时间:2023-12-03 20:34:10 62 4
gpt4 key购买 nike

我正在将 L5.1.x 中的现有项目迁移到运行 Server 2012 和 SQL Server 2012 的新服务器。

对表使用 timestamps() 字段时遇到一些问题。生病时添加我的计划:

$table->timestamps();

我将获得类型为“datetime”的 created_at 和 updated_at 列。

但是,当我尝试将模型添加到此数据库时,使用该新配置时,我总是收到该错误:
QueryException: Unable to convert an nvarchar Value to and datetime Value ....

当我禁用模型中的时间戳字段时,一切正常:
public $timestamps = false;

.. 但当然没有 created_at 和 updated_at 值

我不知道是什么导致了这个问题 - 有什么想法吗?我可以手动将 created_at 和 updated_at 字段设置为“GETDATE()”——但我想使用 Laravel 的基本功能。

最佳答案

好吧,我发现问题了 - Laravel 创建了一个日期时间,格式为:

"Y-m-d H:i:s.u"

但是 SQL Server 需要以下格式:
"Y-d-m H:i:s"

因此,当您使用以下内容更新模型函数时:
public function fromDateTime($value)
{
return Carbon::parse(parent::fromDateTime($value))->format('Y-d-m H:i:s');
}

您可以将日期格式转换为 SQL Server 的正确值(不知道为什么它的 Y-d-m,它不是我的服务器;))

关于Laravel sqlsrv - 无法创建时间戳(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35457412/

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