Php laravel中的年份(开始日期)未知列 选择计数(*)作为计数,月份(开始日期) 从`事件` 其中(年(开始日期)=年(CURDATE()) 或(年(开始日期)=年(当前日期())+1) 按月分组(开始日期)
这是sql查询,我想用laravel雄辩地编写它 我尝试的是: SELECT COUNT(*) as count, MONTH(begin_date) FROM `events` WHERE (YEAR(begin_date) = YEAR(CURDATE())) OR (YEAR(begin_date) = YEAR(CURDATE()) + 1) GROUP BY MONTH(begin_date) $oncoming_events=DB::table('events')) ->选择(DB::raw('count(*)作为numfoncomingevents,MONTH(begin_date)')) ->其中('YEAR(begin_date)'、'YEAR(CURDATE())') ->或其中('YEAR(begin_date)'、'YEAR(CURDATE())+1') ->groupBy('MONTH(begin_date)->get(); 错误: SQLSTATE[42S22]:未找到列:在where子句中1054未知列“年(开始日期)”(SQL:选择count(*)作为numofonomingevents,从Php laravel中的年份(开始日期)未知列 选择计数(*)作为计数,月份(开始日期) 从`事件` 其中(年(开始日期)=年(CURDATE()) 或(年(开始日期)=年(当前日期())+1) 按月分组(开始日期),php,laravel,Php,Laravel,这是sql查询,我想用laravel雄辩地编写它 我尝试的是: SELECT COUNT(*) as count, MONTH(begin_date) FROM `events` WHERE (YEAR(begin_date) = YEAR(CURDATE())) OR (YEAR(begin_date) = YEAR(CURDATE()) + 1) GROUP BY MONTH(begin_date) $oncoming_events=DB::table('events'))
事件开始的月(开始日期)
其中年(开始日期)
=
拉威尔5.6
顺便说一句
sql查询工作..您需要在where中使用
DB::raw()
告诉查询生成器它不是列名,而是查询中的数据操作
$onomming_events=DB::table('events')->选择(DB::raw('count(*)作为numofonomming events,MONTH(begin_date))->其中(DB::raw('YEAR(begin_date))、'='、'YEAR(CURDATE())->或者其中(DB::raw('YEAR(begin_date)、'1')->groupBy(DB::raw('MONTH(begin(begin_date))->get());
您可以使用whereYear('begin('beging)日期)
('Y'))date('Y')是什么?它返回当前年份
$oncoming_events = DB::table('events')
->select(DB::raw('count(*) as numOfOncomingEvents, MONTH(begin_date)'))
->where('YEAR(begin_date)', '=', 'YEAR(CURDATE())')
->orWhere('YEAR(begin_date)', '=', 'YEAR(CURDATE()) +1')
->groupBy('MONTH(begin_date)')->get();