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,而不是在何处