sql >> Databáze >  >> RDS >> Mysql

Laravel Eloquent získá výsledky seskupené podle dnů

Věřím, že jsem na to našel řešení, klíčem je funkce DATE() v mysql, která převádí DateTime na pouhé Date:

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

Toto však ve skutečnosti není řešení Laravel Eloquent, protože se jedná o surový dotaz. Následující text je to, s čím jsem přišel v syntaxi Eloquent. První, kde doložka používá uhlíková data k porovnání.

$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. Jak vytvořit databázi v MySQL

  2. Pochopení datových typů SQL – vše, co potřebujete vědět o datových typech SQL

  3. Jak používat tabulky Oracle PLSQL (asociativní pole nebo index podle tabulky)

  4. Nahradit funkci UUID verze 1 MySQL?