is whereBetween in laravel inclusive?

2019-06-21 04:31发布

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!

3条回答
对你真心纯属浪费
2楼-- · 2019-06-21 05:27

Laravel search between, this means it will get all the rows between 2016-05-12 00:00:00 and 2016-05-27 00:00:00. Your second user is created at 2016-05-27 07:37:45, this is outside the range so Laravel won't fetch it.

Use this and try if this works:

$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, 28)->toDateString()])

Hope this works!

查看更多
SAY GOODBYE
3楼-- · 2019-06-21 05:33

For others who end up here and want the answer to the question asked (in case it's updated… "Is whereBetween in Laravel inclusive?"):

Yes.

查看更多
男人必须洒脱
4楼-- · 2019-06-21 05:35

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()])
查看更多
登录 后发表回答