Laravel 5 如何从laravel数据库中选择一个月以前的记录

Laravel 5 如何从laravel数据库中选择一个月以前的记录,laravel-5,Laravel 5,如何从laravel中的数据库中选择当前日期后一个月的记录。我正在尝试这个代码 这是控制器代码 class LoginHistoryController extends Controller { public function index() { $login_history = LoginHistory::where('login_date','BETWEEN', '(CURDATE() - INTERVAL 10 DAY) AND CURDATE()' )->get(); } }

如何从laravel中的数据库中选择当前日期后一个月的记录。我正在尝试这个代码

这是控制器代码

class LoginHistoryController extends Controller {

public function index()
{
$login_history = LoginHistory::where('login_date','BETWEEN', '(CURDATE() -  
INTERVAL 10 DAY) AND CURDATE()' )->get();
}
}

但是我得到了一个错误。

我将有一个类似这样的方法。首先,我会像这样计算日期

$today = date('Y-m-d');
$date = date_create($today);
date_sub($date, date_interval_create_from_date_string("30 days"));
$beforeOneMonth = date_format($date, "Y-m-d");
到现在为止,您应该在
$beforeOneMonth
中具有预期值。现在,无论是在操作符中使用
,还是在
操作符中使用
=
,您都可以按自己喜欢的方式对其进行比较。例如

$login_history = LoginHistory::where('login_date','>=', $beforeOneMonth)->get();

试试看。如果您正在以其他格式存储
日期
,您可以使用自己的技巧来设置日期的格式并执行该操作

我将采用类似的方法。首先,我会像这样计算日期

$today = date('Y-m-d');
$date = date_create($today);
date_sub($date, date_interval_create_from_date_string("30 days"));
$beforeOneMonth = date_format($date, "Y-m-d");
到现在为止,您应该在
$beforeOneMonth
中具有预期值。现在,无论是在操作符中使用
,还是在
操作符中使用
=
,您都可以按自己喜欢的方式对其进行比较。例如

$login_history = LoginHistory::where('login_date','>=', $beforeOneMonth)->get();

试试看。如果您正在以其他格式存储日期,您可以使用自己的技巧来设置日期格式并执行操作

另一种方法是使用
whereRaw

$login_history = LoginHistory::whereRaw(
    'login_date BETWEEN (CURDATE() - INTERVAL 10 DAY) AND CURDATE()'
)->get();

请注意,
whereRaw
的副作用是降低代码的可移植性,因为您使用的是特定于数据库服务器的SQL。但有时您无法使用查询生成器完成您想要的操作。

另一种方法是使用
whereRaw

$login_history = LoginHistory::whereRaw(
    'login_date BETWEEN (CURDATE() - INTERVAL 10 DAY) AND CURDATE()'
)->get();
请注意,
whereRaw
的副作用是降低代码的可移植性,因为您使用的是特定于数据库服务器的SQL。但有时,您无法使用查询生成器完成您想要的操作