Laravel 5 如何从laravel数据库中选择一个月以前的记录
如何从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(); } }
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。但有时,您无法使用查询生成器完成您想要的操作