如何获得create_at列之间的日期范围(默认列格式:y-m-d h:i:s)在laravel tabel中提供了



我一直在(单列)created_at列之间挣扎的日期范围,到目前为止,我尝试了此

$startDate = date('Y-m-d', strtotime($request->start_date));
$endDate = date('Y-m-d', strtotime($request->end_date));
....->whereBetween('created_at', [$startDate,$endDate])

create_at格式默认为(y-m-d H:i:s),在帖子数据中,我得到了这种格式(y-m-d)

我知道这是错误的查询,但是我该怎么看?

我是否使用->whereRaw()?或使用->whereDate

请帮助

您在Laravel中只有一个专用功能,仅whereDate()。您可以这样使用:

$startDate = date('Y-m-d', strtotime($request->start_date));
$endDate = date('Y-m-d', strtotime($request->end_date));
....->whereDate('created_at', '>', $startDate)->whereDate('created_at', '<', $endDate)

此外,您可以使用<=>=来包含限制。

,不用担心" create_at格式默认为(y-m-d H:i:s),在帖子数据中,我得到了这种格式(y-m-d)",因为该功能仅比较日期部分而不是时间戳部分,而不是时间戳部分你很好。

参考此处

要在两个日期之间检查一下:

$fromDate =Carbon::parse($request->start_date); 
$toDate = Carbon::parse($request->end_date);  
Model::whereBetween('created_at', [$fromDate->toDateString(), $toDate->toDateString()])->get();

wahh ....我很愚蠢而没有尝试所有问题,这很简单,听起来很简单: -

->where('created_at', '>=', $fromDate->toDateString())->where('created_at', '<=', $toDate->toDateString())

非常感谢您的愚蠢。

最新更新