因此我将这段代码作为收集$start_date
和$end_date
$start_date = date("Y-m-d",strtotime($request->start_date));
$end_date = date("Y-m-d",strtotime($request->end_date));
我有这个查询来获取两(2)个日期之间的所有记录
$date_time_records = DateTimeAPI::select('ACNo','datetime','state','deviceID','status')
->whereBetween('datetime', [$start_date, $end_date])
->get();
但是问题是:
mysql中datetime
的字段格式为(Y-m-d h:i:s)
我要做的是将日期范围和字段datetime
匹配为相同格式。
赞这个('Y-m-d')
如果start_date
和end_date
的格式设置为(Y-m-d h:i:s)
,则select查询可以正常工作。但是我只需要(Y-m-d)
答案 0 :(得分:4)
您也可以使用
$query->whereDate('datetime', '>=', $start_date)->whereDate('datetime', '<=', $end_date);
答案 1 :(得分:2)
更改代码
$start_date = date("Y-m-d H:i:s",strtotime($request->start_date));
$end_date = date("Y-m-d H:i:s",strtotime($request->end_date));
或使用碳
use Carbon\Carbon;
Carbon::parse($start_date)->format('Y-m-d H:i:s');
Carbon::parse($end_date)->format('Y-m-d H:i:s');
答案 2 :(得分:2)
在->whereDateBetween()
上使用->whereBetween()
->whereDateBetween('datetime', [$start_date, $end_date])
答案 3 :(得分:1)
您已经提到
your mysql column is of format - Y-m-d h:i:s
and format in date range variable is - Y-m-d.
因此,您可以使用MYSQL的DATE()
函数并按如下所示在查询中实现
$date_time_records = DateTimeAPI::select('ACNo','datetime','state','deviceID','status')
->whereBetween('DATE(datetime)', [$start_date, $end_date])
->get();