我有一个包含 record_date
和相应的 amount
字段的表。我试图检索按日期月份分组的总金额。
我是 Laravel 新手,在普通 php 中我会使用以下 mysql 查询 -->
SELECT MONTH(record_date),YEAR(record_date),SUM(amount)
FROM table_name
WHERE record_date > DATE_SUB(now(), INTERVAL 6 MONTH)
GROUP BY YEAR(record_date) ), 月(记录日期);
这仅返回过去 6 个月收集的总金额,每个月按月份和年份分组。
04 | 2014年| 200.00
06 | 2014年| 500.00
08 | 2014年| 100.00
我已阅读 Laravel eloquent文档,但找不到与我尝试运行的查询等效的内容。我不知道这是否是正确的方法,但我遇到的与上述查询最接近的等效项是
$data = SOME_MODEL::whereBetween('record_date', array(01, 12))->get();
但不确定它是否接近我想要做的事情。
问题是文档没有提供像 now() 这样的日期函数以及我们通常在 mysql 查询中使用的其他函数。
最佳答案
您需要一个原始
查询,您可以尝试这个(未经测试,但应该可行):
$data = DB::table('table_name')
->select(DB::raw('MONTH(record_date) as m, YEAR(record_date) as y, SUM(amount) as t'))
->whereRaw('record_date > DATE_SUB(now(), INTERVAL 6 MONTH)')
->groupBy(DB::raw('YEAR(record_date), MONTH(created_at)'))
->get();
关于laravel - Laravel 4 中检索特定日期范围内数据记录的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24519775/