[英]Laravel Eloquent Query With Between And Just Month And Day
我在數據庫中有一個這樣的日期: 2019-08-28
我需要進行查詢,在這里我可以選擇兩個日期之間的行,但只過濾月份和日期。 我有這個:
$session_data = $request->session()->all();
$date1 = date('Y-m-d');
$date2 = date('Y-m-d', strtotime($date1. ' + 4 days'));
$employees = Employee::whereBetween('born_date', array($date1, $date2))->take(4)->get();
但這選擇不起作用,因為它與年份過濾..我需要使用它的東西:
'DAY(born_date) = '. date('d')
'MONTH(born_date) = '. date('m'))
但是我不知道如何在兩者之間添加它。
Laravel有幫助按日期/月份/年份/時間過濾whereXYZ()
方法 。
您可以按給定的月份進行過濾:
/*
|
| Get all the employees that were born between
| june and december of any year in your db
|
*/
$employees = Employee::whereMonth('born_date', '>=', 6)->get();
或按天過濾:
/*
|
| Get all the employees that were born between the
| 1st and the 10th of every month of every year
|
*/
$employees = Employee::whereDay('born_date', '=<', 10)->get();
當然,您可以組合使用這些方法來完成所需的輸出。
試試下面的代碼
$employees = Employee::whereRaw("DATE_FORMAT(born_date, '%m%d') BETWEEN DATE_FORMAT(NOW(), '%m%d') AND DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 4 DAY), '%m%d')")->take(4)->get();
這個想法是將日期格式化為%m%d並比較這些值
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.