在我的數據庫中我有類似的記錄**my_table_name**id date_column status1 2020-07-21 00:29:05 done2 2020-07-21 21:29:05 done3 2020-07-21 21:35:05 failed4 2020-07-22 10:29:05 done5 2020-07-22 10:35:05 done6 2020-07-22 10:37:05 failed7 2020-07-22 10:39:05 failed8 2020-07-22 10:40:05 done使用 laravel 查詢我想要這樣的結果array( [0]=>array( 'date'=>'2020-07-21', 'failed'=>1 'done'=>2 ), [0]=>array( 'date'=>'2020-07-22', 'failed'=>2 'done'=>3 ))我怎樣才能做到這一點?我努力了$record=DB::table('my_table_name') ->select( DB::raw("DATE_FORMAT(date_column, 'Y-m-d') as date"), DB::raw("SUM(status= 'failed') as failed"), DB::raw("SUM(status= 'done') as done"), ) ->where('date_column','>=','2020-07-21 00:00:00') ->where('date_column','<=','2020-07-22 23:59:59') ->groupBy(DB::raw("DATE_FORMAT(date_column, 'Y-m-d')")) ->get();提前致謝
1 回答

富國滬深
TA貢獻1790條經驗 獲得超9個贊
您的代碼似乎沒問題,但使用日期格式“Ymd”而不是“%Y-%m-%d”,這是錯誤的。
為了解決您的問題,請使用以下查詢:
DB::table('my_table_name')::select( DB::raw("DATE_FORMAT(date_column, '%Y-%m-%d') as date"), DB::raw("SUM(name= 'failed') as failed"), DB::raw("SUM(name= 'done') as done"), ) ->whereDate('date_column','>=','2020-07-21') ->whereDate('date_column','<=','2020-07-22') ->groupBy(DB::raw("DATE_FORMAT(date_column, '%Y-%m-%d')")) ->get();
- 1 回答
- 0 關注
- 109 瀏覽
添加回答
舉報
0/150
提交
取消