如何在 yii2 中使用 start_time 和 end_time 获取 MySql 中已经存在的记录?

How to fetch already existing records in MySql with start_time and end_time in yii2?

我有 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_date 检查时间是否在 start_timeend_time 之间。

我试过的查询:-

$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';
}

这没有返回正确的输出。

我终于明白了:)


   $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
                        ]
                    ]
                ]);