怎么得到较低的日期Laravel和mysql

时间:2018-06-07 10:34:15

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

我有这个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 

但不归还。 我哪里错了?

1 个答案:

答案 0 :(得分:0)

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

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

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

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