我有这个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
但不归还。 我哪里错了?
答案 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)'))