laravel - Laravel 4 中检索特定日期范围内数据记录的查询

标签 laravel laravel-4 eloquent query-builder

我有一个包含 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/

相关文章:

php - 使用 Laravel 4 中的布局在不同 View 的标题中加载 CSS

php - 带有值(value)引号的 Laravel Multi Insert 问题

php - 尝试在 DatabaseServiceProvider 中使用单例创建的 ConnectionFactory 类

php - 为什么 Laravel 4 gitignore composer.lock

Javascript (jQuery) 加载模式直到数据库查询在 php 页面上结束

laravel - Laravel 4 中的多语言 URL

mysql - Laravel - 如何在这里分页?

php - 使用 laravel 预加载选择特定列不起作用

Laravel Eloquent : with query parameters

mysql - Laravel Eloquent 忽略大小写