如何在Laravel Eloquent中使用PostgreSQL DATE_FORMAT

时间:2019-05-14 17:16:40

标签: laravel postgresql eloquent

我正在编写查询以获取按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(没有时区的时间戳,未知)   不存在

1 个答案:

答案 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");