is whereBetween in laravel inclusive?

In my database there are 4 students:

1st Student’s created_at = 2016-05-12 02:23:51

2nd Student’s created_at = 2016-05-27 07:37:45

3rd Student’s created_at = 2016-05-29 07:40:29

4th Student’s created_at = 2016-05-29 07:50:05

Why does my code only returns the 1st student?

$students = Student::select('id as ID_NO', 'fname as Firstname', 'lname as Lastname', 'created_at')
                             ->whereBetween('created_at', 
                              [Carbon::createFromDate(2016, 5, 12)->toDateString(),
                               Carbon::createFromDate(2016, 5, 27)->toDateString()])

The 1st and 2nd student should be returned. Is the “to” part inclusive in whereBetween or there’s something wrong with my code ?

I need your help guys. Thanks in advance!

Answer

You need to format your created_at to Y-m-d format. Please see the change:

$students = Student::select('id as ID_NO', 'fname as Firstname', 'lname as Lastname', 'created_at')
                                 ->whereBetween(DB::raw('date(created_at)'), 
                                  [Carbon::createFromDate(2016, 5, 12)->toDateString(),
                                   Carbon::createFromDate(2016, 5, 27)->toDateString()])

Leave a Reply

Your email address will not be published. Required fields are marked *