php - 如何在 yii2 中使用 start_time 和 end_time 获取 MySql 中已经存在的记录?
问题描述
我有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';
}
这没有返回正确的输出。
解决方案
我终于想通了:)
$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
]
]
]);
推荐阅读
- python - 从旧词典创建新词典
- discord.js - Discord.js 错误,同时从另一个 javascript 中选择一个随机对象
- vue.js - VueJS:为什么父组件方法无法完全删除/销毁子组件(`vue2-dropzone`)?
- android - 获取 CursorIndexOutOfBoundsException :请求索引 3,大小为 3
- java - CentOS .exe 程序的最大堆大小无效
- mongodb - MongoDB 两组聚合
- r - 通过 R 数据框中的“标签分数”为 geom_histogram 着色?
- python - 无法从 Pylab 导入 Imread
- mongodb - 在 Manjaro 上安装 MongoDB
- c# - 接口中的私有成员