如何在 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_time
和 end_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
]
]
]);
我有 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_time
和 end_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
]
]
]);