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();
我想查询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();