在Laravel查询构建器中等效的MySQL YEAR()

Dad*_*ani 17 php mysql laravel

使用MySQL,我可以使用这样的YEAR()函数来过滤WHERE子句中日期字段的年份:

SELECT noworkorder FROM workorders WHERE YEAR(date)=2015;
Run Code Online (Sandbox Code Playgroud)

在Laravel中,我当然可以使用原始表达式实现相同的功能:

$data = DB::table('workorders')
       ->select('noworkorder')
       ->where(DB::raw('YEAR(date)=2015'))
       ->orderby('noworkorder', 'desc')
       ->get();
Run Code Online (Sandbox Code Playgroud)

但有没有办法在没有原始表达的情况下做到这一点?

Tho*_*Kim 26

查询构建器有一个whereYear方法:

$data = DB::table('workorders')
   ->select('noworkorder')
   ->whereYear('date', '=', 2015)
   ->orderby('noworkorder', 'desc')
   ->get();
Run Code Online (Sandbox Code Playgroud)