laravel - Laravel 8 和 SQL Server:时间戳问题
问题描述
大家好,新年快乐,
我正在将我的项目转换为使用 SQL Server 而不是 MySQL,并且我正在努力解决管理时间戳的问题。
在项目中,我有以下代码:
Customers::whereBetween('created_at', [Carbon::now()->subDays('7'), Carbon::now()])->count();
这让我返回了过去 7 天内注册的新客户数量。在使用 SQL Server 时使用 MySQL 没有任何问题,但出现此错误:
将 nvarchar 数据类型转换为日期时间会导致值超出允许范围。
尽管在我的模型中,我设置了
public function getDateFormat()
{
return 'Y-m-d H: i: s.v';
}
以毫秒为单位获取值。
我忘了设置什么?
解决方案
该错误告诉您转换失败。可能的原因:
日期不存在
如果您将 2 月 30 日作为输入,它将失败。
输入不符合使用的格式
要检测这是否是问题所在,您需要找出生成的 SQL 是什么,并找出导致此问题的值。仔细研究转换后,您应该能够确定问题和解决方案是什么。
推荐阅读
- xml - 如何使用 xmlstarlet 替换部分 xml?
- javascript - 根据条件更改光标(插入符号)位置的方法
- laravel - 在 laravel 5.58 的编辑方法上加载视图页面时 css 和 js 路径损坏
- javascript - 如何从js中的表格中获取文本值
- scala - 如何在 Scala 中使用 map 更改流的元素类型
- javascript - 以角度 6 过滤数据
- vue.js - Vue中带有src集的响应式图片标签
- javascript - 如何找到在javascript中按降序对数字数组进行排序所需的最小交换次数
- java - 当我更改宽度时,itext 中的高度会发生变化
- dart - 使用 Flutter 打开 Android 警报