Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于每个日期的拉威尔计数记录_Php_Mysql_Sql_Laravel - Fatal编程技术网

Php 基于每个日期的拉威尔计数记录

Php 基于每个日期的拉威尔计数记录,php,mysql,sql,laravel,Php,Mysql,Sql,Laravel,在我的数据库中,我有类似的记录 **my_table_name** id date_column status 1 2020-07-21 00:29:05 done 2 2020-07-21 21:29:05 done 3 2020-07-21 21:35:05 failed 4 2020-07-22 10:29:05 done 5 2020-07-

在我的数据库中,我有类似的记录

**my_table_name**

id      date_column               status
1       2020-07-21 00:29:05       done
2       2020-07-21 21:29:05       done
3       2020-07-21 21:35:05       failed
4       2020-07-22 10:29:05       done
5       2020-07-22 10:35:05       done
6       2020-07-22 10:37:05       failed
7       2020-07-22 10:39:05       failed
8       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();
$record=DB::table('my\u table\u name')
->挑选(
DB::raw(“日期格式(日期列,'Y-m-d')作为日期”),
DB::raw(“SUM(status='failed')as failed”),
DB::raw(“SUM(status='done')as done”),
)
->其中('date_column','>=','2020-07-21 00:00:00')

->其中('date_column','您的代码似乎没有问题,但使用的日期格式是'Y-m-d',而不是'%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();
DB::table('my_table_name')::选择(
DB::raw(“日期格式(日期列,%Y-%m-%d”)作为日期”),
DB::raw(“SUM(name='failed')as failed”),
DB::raw(“SUM(name='done')as done”),
)
->其中日期('date_column','>=','2020-07-21')

->whereDate(‘date_column’,‘它现在正在工作,但是否有任何方法必须返回介于这两个范围内的日期的计数?当前,如果没有记录,它不会返回该日期的任何记录尝试使用whereDate,而不是在何处