Laravel 5 碳格式
Laravel 5 Carbon Format
编辑:感谢戴维森先生的评论,我将查询更改为:
$query->where(DB::raw('MONTH(date)'), '=', Carbon::parse($month)->format('m'));
原帖:
在我的费用概览中,我有一个下拉菜单,我可以在其中 select 一个月,然后仅查询该特定月份的结果,如下所示:
$query->where('date', 'LIKE', '%' . Carbon::parse($month)->format('m') . '%');
之前,我的查询是这样的:
$query->where('date', 'LIKE', '%2015-' . Carbon::parse($month)->format('m') . '%');
在我的数据库中,我有一个日期时间字段,所以上面的方法有效,但当然它只显示 2015 年的结果。我想弄清楚如何使用第一个查询来显示 2016 年的结果。
除了使用 whereRaw
或 LIKE
,您还可以使用 whereMonth
方法:
$query->whereMonth('date', '=', Carbon::parse($month)->format('m'));
因为它更容易阅读。该方法未记录在 Laravel Query Builder Docs, but you can check out the Query Builder API 中以查看方法签名,以及检查在构建查询时可以使用哪些其他方法(因为官方文档中未描述的方法很多) ).
编辑:感谢戴维森先生的评论,我将查询更改为:
$query->where(DB::raw('MONTH(date)'), '=', Carbon::parse($month)->format('m'));
原帖:
在我的费用概览中,我有一个下拉菜单,我可以在其中 select 一个月,然后仅查询该特定月份的结果,如下所示:
$query->where('date', 'LIKE', '%' . Carbon::parse($month)->format('m') . '%');
之前,我的查询是这样的:
$query->where('date', 'LIKE', '%2015-' . Carbon::parse($month)->format('m') . '%');
在我的数据库中,我有一个日期时间字段,所以上面的方法有效,但当然它只显示 2015 年的结果。我想弄清楚如何使用第一个查询来显示 2016 年的结果。
除了使用 whereRaw
或 LIKE
,您还可以使用 whereMonth
方法:
$query->whereMonth('date', '=', Carbon::parse($month)->format('m'));
因为它更容易阅读。该方法未记录在 Laravel Query Builder Docs, but you can check out the Query Builder API 中以查看方法签名,以及检查在构建查询时可以使用哪些其他方法(因为官方文档中未描述的方法很多) ).