【问题标题】:how get the lower dates Laravel and mysql如何获得较低的日期 Laravel 和 mysql
【发布时间】:2018-11-17 05:47:19
【问题描述】:

我有这个 laravel 查询来从数据库中获取所有过期的用户

 $result = DB::table('radchecks as c')->leftJoin('radusergroup', 'c.username', '=', 'radusergroup.username')->whereRaw("DATE_FORMAT(c.expiration,'%Y-%m-%d') <= DATE_FORMAT('NOW()','%Y-%m-%d')")
->select('c.username', 'expiration')

->groupBy('c.username')
->get();

但是即使有过期列的值,这个查询也会返回 null

 01 june 2017 

但不归还。 我哪里错了?

【问题讨论】:

    标签: mysql laravel-5 laravel-query-builder


    【解决方案1】:

    不要将 NOW() 放在单引号 'NOW()'

    ->whereRaw("DATE_FORMAT(c.expiration,'%Y-%m-%d') <= DATE_FORMAT(NOW(),'%Y-%m-%d')")
    

    此外,您的选择列表无效,因为到期不存在于 group by 或选择没有聚合这可能导致不确定的值,您可以将选择部分更新为 MAX(expiration)/MIN(expiration)

    ->select('c.username', DB::raw('MAX(expiration)'))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-30
      • 1970-01-01
      • 2017-10-08
      • 2015-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-02
      相关资源
      最近更新 更多