【问题标题】:How to get the users with the sort by birth-date by month?如何让用户按出生日期按月排序?
【发布时间】:2023-01-12 23:02:06
【问题描述】:

我必须按用户的出生日期对数据进行排序。但它可以按月而不是按年或日期排序。我也需要用户数据。

我不知道如何使用 first_name、last_name 等获取用户的所有字段来做到这一点。

我试过这个查询:

 $employees = User::select(DB::raw("DATE_FORMAT(birth_date,'%M %Y') as months"),)
       ->groupBy('months')
       ->get();

【问题讨论】:

  • 好吧,在我看到你试图完成的任何事情之前,我也没有任何线索,你是没有想法的..
  • 如果您想提供更多信息,只需编辑问题即可。
  • @dbf 我有更新你可以检查它。

标签: laravel eloquent laravel-8


【解决方案1】:

您可以使用此查询按出生日期的月份对用户进行排序,然后获取用户:

User::select(
        DB::raw("DATE_FORMAT(birth_date,'%m') as month"), 'first_name', 'last_name',
    )->orderByDesc('month')->get();

请注意,您还可以使用 orderByAcs 对用户进行升序排序

【讨论】:

  • 但是我怎样才能得到用户的名字,姓氏,因为它只返回属性数组中的“月份”。
  • @基山User::select(['first_name', 'last_name', DB::raw(...)]) ...;它只返回month,因为这是您选择的唯一列。
  • @Kishan 我已经更新了我的答案,这样你也可以获得名字和姓氏
  • @Kishan 首先与 Laravel 的 documentation 交易 ORM 成为朋友。
  • @TimLewis 我试过这个查询:` $employees = User::select(['first_name','last_name'], DB::raw("DATE_FORMAT(birth_date,'%m') as month"), )-> orderByDesc('出生日期')->get(); ` 但我只得到 first_name 和 last_name!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-03
  • 2017-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多