whereBetween in Laravel 不适用于 Carbon

whereBetween in Laravel not working well with Carbon

我想查询2016-01-10创建的用户。所以 Laravel 5.1 中的代码像这样(created_at 是时间戳):

$day1 = new Carbon();
$day1->year = 2016;
$day1->month = 1;
$day1->day = 10;

$day2 = new Carbon();
$day2->year = 2016;
$day2->month = 1;
$day2->day = 11;

User::whereBetween('created_at', [$day1->startOfDay(), $day2->startOfDay()])->get();

上面的代码工作正常。 但是这种正常的方式,不会:

User::whereBetween('created_at', [$day1->startOfDay(), $day1->endOfDay()])->get();

我认为没有区别。

你不需要中间:

$myDate = new Carbon('2016-01-10');
User::whereDate('created_at', '=', $myDate->format('Y-m-d'))->get();

你可以使用类似他的东西

\Illuminate\Database\Query\Builder Line 902

User::whereDate('created_at', '=', new Carbon('2016-01-10'))->get();

并且没有碳

User::where( DB::raw('DATE(created_at)'), '=', '2016-01-10')->get();
OR
$d = new Carbon('2016-01-10');
User::whereRaw('DATE(created_at) = ?', [$d])->get();