使用laravel中的日期组从数据库中获取数据[重复]

Posted

技术标签:

【中文标题】使用laravel中的日期组从数据库中获取数据[重复]【英文标题】:Get data from database using date groups in laravel [duplicate] 【发布时间】:2020-11-13 07:14:25 【问题描述】:

我正在使用 laravel,我正在尝试从按“created_at”列分组的数据库中获取数据。 created_at 列中的数据被存储为以下格式,

2020-07-23 07:03:59

我的问题是,我们如何仅使用日期组来获取数据。 例如,所有的记录应该被分组到一个具有相同日期的数组/对象中。

我尝试执行以下查询,

 $transactions= MyTransaction::where('id','=',$user->id)->orderBy('created_at')->get()->groupBy(function($item) 
                return $item->created_at->format('Y-m-d');
            );

但它不会返回我所期望的,它也会考虑秒数和小时数。

请指导我解决这个问题。

【问题讨论】:

你不能用mysql/eloquent将结果分组到一个数组中,groupBy用于将所有结果压缩成每组1行,这主要用于count()之类的函数。您最好的选择是在使用 php.ini 查询后对选项进行排序。或者对每个组做一个单独的查询。 @Merijndk:感谢您的快速回复。你能否指导我更多地实现我的目标。 【参考方案1】:
  $column = \DB::raw("CONCAT(YEAR(`ride_date`),'-',MONTH(`ride_date`),'-',DAY(`ride_date`)) AS `group_column`");


 $transactions= MyTransaction::select('*',$column)->where('id','=',$user->id)->orderBy('created_at')->groupBy('group_column')->get();

【讨论】:

以上是关于使用laravel中的日期组从数据库中获取数据[重复]的主要内容,如果未能解决你的问题,请参考以下文章

试图从 laravel 中的日期获取月份(并且 postgres 提取不起作用)

如何通过重定向将数据传递到laravel中的视图

在 PHP Laravel 中的 SQL Server 中将字符串转换为日期数据类型

使用参数重定向到 Laravel 中的控制器并在第二个控制器中获取参数

Laravel 查询获取尚未存在真实数据的日期的虚拟数据

更改 laravel 视图页面中的日期格式