簡體   English   中英

Laravel雄辯的查詢,時間介於一個月和一天之間

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM