我正在编写查询以获取按created_at分组的记录,以下是我所拥有的查询。
$q = Post::where('user_id', '=', auth()->user()->id)
->orderBy('created_at', 'desc')
->groupBy(DB::raw("DATE_FORMAT(created_at, '%Y-%m-%d')"))
->take(10)
->get(array(
DB::raw('Date(created_at) as date'),
DB::raw('COUNT(id) as "views"')
))->reverse();
上面的代码在MySQL中运行时没有任何错误,但是当我使用PostgreSQL在Heroku上推送代码时,出现错误。
错误:函数date_format(没有时区的时间戳,未知) 不存在
答案 0 :(得分:0)
我知道这已经晚了,但如果有人仍在此处寻找如何在 Postgresql 中获取日期的答案,您可以使用 field_name::date
,例如 created_at::date
上面的查询可以写成
DB::select("select created_at::date, COUNT(id) as views from post where user_id = ".auth()->user()->id." group by created_at::date order by created_at desc Limit 10");