获取 Laravel 中的唯一年份值
Getting the unique year value in Laravel
我只想从此日期类型列中提取唯一的年份值。但我总是收到此错误“您可能需要添加显式类型转换”。
如果有 2020-06-23、2020-07-01、2019-01-02、2019-02-05 日期,我想要的输出是 return 唯一的年份值。所以输出应该是 2020 和 2019 only.Please 帮助。谢谢。
这是我的代码:
$year= DB::table('loans')
->select('date_release', DB::raw('YEAR(date_release) as year'))
->groupBy('year')
->get();
查询可以是(returns all when there are different dates from different years);
SELECT EXTRACT(YEAR FROM loans.date_release) AS year FROM loans group by year;
查询生成器将是
return DB::table('loans')
->select([DB::raw('EXTRACT(YEAR FROM loans.date_release) as year')])
->groupBy('year')
->pluck('year');
它打印以下内容多年
[2018, 2019, 2020]
我认为只有两种方法可以得到你想要的
首先,您需要添加另一列名称为年份并仅存储数据年份,您的查询将像这样
return DB::table('loans')
->select('year')->distinct('year');
第二个在 return 之前,你应该使用一些算法来提取年份,return 只有不同的年份,它会像这样
$year = DB::table('loans')
->select([DB::raw('YEAR(date_release) as year')])
->groupBy('year')
->value('year');
$distinct_year = array();
foreach($year as $item){
$years = date('Y', strtotime($item->year))
if(!in_array($years, $distinct_year)){
array_push($distinct_year, $years);
}
}
return $distinct_year;
我只想从此日期类型列中提取唯一的年份值。但我总是收到此错误“您可能需要添加显式类型转换”。
如果有 2020-06-23、2020-07-01、2019-01-02、2019-02-05 日期,我想要的输出是 return 唯一的年份值。所以输出应该是 2020 和 2019 only.Please 帮助。谢谢。
这是我的代码:
$year= DB::table('loans')
->select('date_release', DB::raw('YEAR(date_release) as year'))
->groupBy('year')
->get();
查询可以是(returns all when there are different dates from different years);
SELECT EXTRACT(YEAR FROM loans.date_release) AS year FROM loans group by year;
查询生成器将是
return DB::table('loans')
->select([DB::raw('EXTRACT(YEAR FROM loans.date_release) as year')])
->groupBy('year')
->pluck('year');
它打印以下内容多年
[2018, 2019, 2020]
我认为只有两种方法可以得到你想要的 首先,您需要添加另一列名称为年份并仅存储数据年份,您的查询将像这样
return DB::table('loans')
->select('year')->distinct('year');
第二个在 return 之前,你应该使用一些算法来提取年份,return 只有不同的年份,它会像这样
$year = DB::table('loans')
->select([DB::raw('YEAR(date_release) as year')])
->groupBy('year')
->value('year');
$distinct_year = array();
foreach($year as $item){
$years = date('Y', strtotime($item->year))
if(!in_array($years, $distinct_year)){
array_push($distinct_year, $years);
}
}
return $distinct_year;