Laravel 5 laravel查询生成器如何仅从dateTime字段检索年和月

Laravel 5 laravel查询生成器如何仅从dateTime字段检索年和月,laravel-5,eloquent,query-builder,laravel-query-builder,Laravel 5,Eloquent,Query Builder,Laravel Query Builder,我只想从数据库中的dateTime字段中选择月份和年份,我尝试了这个 $historyMonth = App\Models\HistoryCostEstimation::where('user_id',$id)->orderBy('created_at','desc')->toDateString('Y-m')->get(); 但是它不起作用,有什么建议吗?既然您总是想要这种格式,您可以在历史成本估算模型中定义访问器,如下所示: public function getCrea

我只想从数据库中的dateTime字段中选择月份和年份,我尝试了这个

$historyMonth = App\Models\HistoryCostEstimation::where('user_id',$id)->orderBy('created_at','desc')->toDateString('Y-m')->get();

但是它不起作用,有什么建议吗?

既然您总是想要这种格式,您可以在
历史成本估算
模型中定义
访问器
,如下所示:

public function getCreatedAtAttribute($date) { 
    return Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $date)->format('Y-m'); 
}
您可以查询记录,而无需进行任何转换:

App\Models\HistoryCostEstimation::where('user_id',$id)
                                  ->orde‌​rBy('created_at','de‌​sc')
                                  ->get();

你想一直这样还是在某些情况下这样?什么是相关字段?我总是需要它,相关字段是“created_at”,它是dateTime字段,因此您可以在
HistoryCostEstimation
中为created_at字段添加一个getter,如下
public function getcreateDataAttribute($date){return Carbon\Carbon::createFromFormat('Y-m-d H:i:s',$date)->format('Y-m')}
不更改查询中的任何内容
App\Models\HistoryCostEstimation::where('user\u id',$id)->orderBy('created\u at','desc')->get()
在循环中,如果它将返回多个记录,则只需执行
record->created\u at
!!这对你有用吗?我真的很抱歉我离开了一段时间,非常感谢你的努力现在有用了谢谢