我有一个看起来像这样的Laravel查询
$users = DB::table("users")
->select('id')
->where('accounttype', 'standard')
->get()->all();
它正在运行并返回所有标准帐户的ID,我试图将其限制为仅返回过去30天的结果,创建用户的日期存储为' created_at&#39中的时间戳;
最好在查询中执行此操作,还是应该在之后处理结果?
答案 0 :(得分:2)
您可以将碳与whereDate
子句一起使用:
use Carbon\Carbon;
$users = DB::table("users")
->select('id')
->where('accounttype', 'standard')
->whereDate('created_at', '>', Carbon::now()->subDays(30))
->all();
如评论中所述,在您发现性能问题或查询变得不可读之前,请尽可能多地进行查询。
答案 1 :(得分:0)
您可以使用它
\App\Model::whereBetween('date', [
\carbon\Carbon::now()->subdays(30)->format('Y-m-d'),
\carbon\Carbon::now()->subday()->format('Y-m-d')
])->get();
答案 2 :(得分:0)
你可以使用它
<?php
namespace App\Http\Controllers;
use App\User;
use Illuminate\Http\Request;
use Carbon\Carbon;
class tblUserController extends Controller
{
public function getSixtyMonthUser(){
$date = Carbon::today()->subDays(60);
$users = User::where('created_at','>=',$date)
->where('accounttype', 'standard')
->select('id')
->get();
return response()->json($users,200);
}
}