Получить пользователей из таблицы по полям даты - PullRequest
0 голосов
/ 20 января 2020

У меня есть таблица с форматом даты ГГГГ-ММ-ДД и полями:

user | assign_date | removal_date  
 A |  2020-01-01 | null  
 B |  2020-01-01 | 2020-01-05
 C |  2020-01-10 | null  

Как с помощью Laravel Query Builder или простого SQL запроса я могу заставить пользователей сравнивать assign_date и удаление дата с выбранной датой? Пример необходимых результатов.

selected date | users  
2020-01-03 | A,B (user C has not recruited yet)
2020-01-06 | A  (user C has not recruited yet and user B has already been fired)
2020-01-11 | A,C  (user C has already recruited, but user B has already been fired)

Ответы [ 2 ]

0 голосов
/ 20 января 2020

Вы можете использовать это

Model::where('assinged_date', '<=', $selected_date)
   ->orWhere('removal_date', '>=', $selected_date);
   ->get();
0 голосов
/ 20 января 2020

Кажется, у вас есть поле типа даты, которое можно обнулять.

Таким образом, вы можете фильтровать следующим образом:

Для Eloquent:

Model::where('assinged_date', '<=', $selected_date)
       ->where(function($q) use ($selected_date) {
            $q->whereNull('removal_date')
              ->orWhere('removal_date', '>=', $selected_date);
         })

Для QueryBuilder:

DB::table('table_name')->where('assinged_date', '<=', $selected_date)
                     ->where(function($q) use ($selected_date) {
                          $q->whereNull('removal_date')
                            ->orWhere('removal_date', '>=', $selected_date);
                       })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...