Как получить уже существующие записи в MySql с start_time и end_time в yii2? - PullRequest
2 голосов
/ 13 марта 2020

У меня tbl_batch, у которого

id
title
start_date
start_time
end_time
venue_id
created_by

В базе данных start_time и end_time сохраняется как time()

Строка: -

id 1
title test
start_time 10:10
end_time 11:30
venue_id 1
start_date 2020-03-01 (Y-m-d)
created_by 1

Поэтому я хотел бы проверить, находится ли время между start_time и end_time с заданным start_date.

Запрос, который я пробовал: -

$model = Batch::find()->where([

'start_date' => '2020-03-01',
'venue_id' => 1

])->andWhere([

'AND',
[ '>=',
  'start_time',
  '10:20'
],
[ '<=',
  'end_time',
  '19:20'
]

]);

if($model->exists()){
      echo 'Already exists in DB';
}else
{
      echo 'Does not Exist';
}

Это не возвращается правильный вывод.

1 Ответ

0 голосов
/ 17 марта 2020

я наконец разобрался :)


   $time_between = Batch::find()->where([
                   'start_date' => '2020-03-01',
                   'venue_id' => 1
                ])->andWhere([

                    'OR',
                    [
                        'OR',

                        [
                            'between',
                            'end_time',
                            $model->start_time,
                            $model->end_time
                        ],
                        [
                            'between',
                            'start_time',
                            $model->start_time,
                            $model->end_time
                        ]
                    ],
                    [

                        'AND',
                        [
                            '<=',
                            'start_time',
                            $model->start_time
                        ],
                        [
                            '>=',
                            'end_time',
                            $model->start_time
                        ]
                    ]
                ]);

...