Penggunaan Laravel whereBetween

Saya coba menggunaka wherebetween, kurang lebih querynya seperti ini :

$tgl_awal = 2021-01-01;
$tgl_akhir = 2021-01-05;

Report::whereBetween('created_at', [$tgl_awal, $tgl_akhir])->get();

Query di atas harusnya menampilkan data yg di input pada tanggal 1 sampai 5, tapi dalam kasus saya tidak seperti itu. Query di atas hanya menampilkan data antara tgl 1 sampai 4/ mudur satu hari dari tanggal ahir yg ditentukan.  Apakah whereBetween memang seperti itu? atau kesalahan pada kode yg saya tulis?
avatar Supriono

@Supriono

74 Kontribusi 11 Poin


Jawaban

kode nya sudah benar coba cek database nya 
avatar farhansyam

@farhansyam

127 Kontribusi 29 Poin

  • di database dri tgl 1 sampai 5 semua ada data. - @Supriono


Sudah coba seperti ini kak?
$tgl_awal = '2021-01-01 00:00:00';
$tgl_akhir = '2021-01-05 00:00:00';

Report::whereBetween('created_at', [$tgl_awal, $tgl_akhir])->get();
avatar yudhisyudhis

@yudhisyudhis

9 Kontribusi 1 Poin


Coba manfaatkan fungsi DATE bawaan dari mysql seperti ini :
$tgl_awal = 2021-01-01;
$tgl_akhir = 2021-01-05;

Report::whereBetween('DATE(created_at)', [$tgl_awal, $tgl_akhir])->get();

Jadi, nanti kolom created_at akan dikonversikan ke tanggal (mengabaikan jam, menit, dan detiknya).
avatar ahanafi

@ahanafi

614 Kontribusi 357 Poin


Terimakasih semua jawabannya, tapi untuk sementara belum memecahkan masalah saya.
Untuk sementara sampai saya menemukan jawaban, saya akali dengan cara seperti ini agar query yang di hasilkan tetap sesuai seperti yang di tentukan pada request input :

$tgl_awal = $request->tgl_awal;
$tgl_2 = $request->tgl_akhir;
$tgl_akhir = date('Y-m-d H:i:s', strtotime($tgl_2 . ' +1 day'));


Report::whereBetween('created_at', [$tgl_awal, $tgl_akhir])->get();
avatar Supriono

@Supriono

74 Kontribusi 11 Poin


Login untuk gabung berdiskusi