簡體   English   中英

Laravel獲取具有特定日期和月份的行

[英]Laravel get rows with specific day and month

我在laravel中有以下查詢:

$eventos = EventsData::join('tbl_users', 'tbl_users.id_user', '=', 'tbl_events.id_user')
            ->where('tbl_users.birth_date', '>=', date("m-d"))  //my error
            ->where('tbl_events.year', '>=', date("Y"))
            ->get();

我有一個用戶表( tbl_users ),其中包含每個用戶的生日日期。 和事件表(tbl_events),記錄每個用戶的周年紀念日。 從而創建一個可以獲得下一個生日的桌子。

我的birth_date是“yyyy-mm-dd”。 桌面活動是year 我想在當天和今年舉辦下一場比賽。

即我認為周年紀念日必須大於當前的月和日,以及當年的最高年份

首先將birth_date格式化為mm-dd,然后再將其與日期('m-d')進行比較,如下所示:

$eventos = EventsData::join('tbl_users', 'tbl_users.id_user', '=', 'tbl_events.id_user')
            ->whereRaw("DATE_FORMAT( tbl_users.birth_date, '%m-%d') >= ?", array(date('m-d')))
            ->where('tbl_events.year', '>=', date("Y"))
            ->get();

更新

如果您的tbl_events 沒有完整的日期屬性 ,則可以在2個查詢中執行此操作:

首先,獲取今年剩余的事件:

$events_this_year = EventsData::join('tbl_users', 'tbl_users.id_user', '=', 'tbl_events.id_user')
                ->whereRaw("DATE_FORMAT( tbl_users.birth_date, '%m-%d') >= ?", array(date('m-d')))
                ->where('tbl_events.year', '=', date("Y")) // Get remaining events this year
                ->get();

第二,獲得明年的活動:

$events_following_year = EventsData::join('tbl_users', 'tbl_users.id_user', '=', 'tbl_events.id_user')
                    ->where('tbl_events.year', '>', date("Y")) // Get events for upcoming years
                    ->get();

然后合並它們

$eventos = $events_this_year->merge($events_following_year);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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