【发布时间】:2020-12-27 15:24:55
【问题描述】:
我在使用 wherebetween 按时间戳(日期时间)过滤数据时遇到问题
为了测试查询,这是我的路线
Route::get('/test3/{iduser}/{waktu}', 'SharedController@fgetxy_person');
这是网址测试
http://localhost:8000/test3/32/2020-12-08 2010:15:00
这是我的控制器
public function fgetxy_person($iduser, $waktu){
$time = Carbon::createFromFormat('Y-m-d H:i:s', $waktu, 'Asia/Jakarta');
// dd($time->addMinutes(-5)); //output: 10:10:00
// dd($time->addMinutes(30)); //output: 10:45:00
$xybeacon = DB::table('transaksi as tb')
->select('tb.id_ble', 'tb.rssi', 'tb.id_ble2', 'tb.rssi2', 'tb.id_ble3', 'tb.rssi3','tb.updated_at')
->where('id_user', $iduser)
->whereBetween('updated_at', [$time->addMinutes(-5), $time->addMinutes(30)]) //output: []
// ->whereBetween('updated_at', array($time->addMinutes(-5), $time->addMinutes(30))) // output: []
// ->where('updated_at','>=',$time->addMinutes(-5)) //output: 94 array
// ->where('updated_at','<=',$time->addMinutes(30)) //output: 35 array
// ->whereRaw(
// "(updated_at >= ? AND updated_at <= ?)",
// [$time, $time->addMinutes(30)]
// ) //output: []
->get();
问题是,我无法使用 wherebetween 获取数据。
如果我尝试使用 1,例如 addMinutes(-5),我可以获取数据。
但是当使用 2 where addMinutes(-5) 和 addMinutes(30) 时,我得到空数组 []
任何帮助将不胜感激
【问题讨论】:
-
2020-12-08 2010:15:00看起来不像是正确的日期时间 -
我确定它是正确的,因为我可以 addMinutes 并测试 (dd($time->addMinutes(-5)); //output: 10:10:00)
标签: php laravel postgresql query-builder