Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Laravel Eloquent mendapatkan hasil yang dikelompokkan berdasarkan hari

Saya yakin saya telah menemukan solusi untuk ini, kuncinya adalah fungsi DATE() di mysql, yang mengubah DateTime menjadi hanya Tanggal:

DB::table('page_views')
      ->select(DB::raw('DATE(created_at) as date'), DB::raw('count(*) as views'))
      ->groupBy('date')
      ->get();

Namun, ini sebenarnya bukan solusi Laravel Eloquent, karena ini adalah permintaan mentah. Berikut ini adalah apa yang saya temukan dalam sintaks Eloquent-ish. Klausa where pertama menggunakan tanggal karbon untuk membandingkan.

$visitorTraffic = PageView::where('created_at', '>=', \Carbon\Carbon::now->subMonth())
                            ->groupBy('date')
                            ->orderBy('date', 'DESC')
                            ->get(array(
                                DB::raw('Date(created_at) as date'),
                                DB::raw('COUNT(*) as "views"')
                            ));


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Peringatan direktori pengguna/local/mysql/data tidak dimiliki oleh pengguna mysql

  2. Skrip PHP untuk mencatat data mentah POST

  3. Bagaimana cara membuat dan menyisipkan objek JSON menggunakan kueri MySQL?

  4. Skrip Pemeriksaan Kesehatan Replikasi MySQL

  5. Apakah Tanggal kata kunci di mysql?