php - Mysql:查询无法正常工作,未选择 12:00 之间的位置
问题描述
mysqlbetween
没有按预期工作。我现在的查询:
Table::where(function ($query) use ($time_in, $time_out) {
$query->orWhereRaw("? between time_in AND time_out", [$time_in.":00"])
->orWhereRaw("? between time_in AND time_out", [$time_out.":00"])
->orWhereRaw("time_in between ? AND ?", [$time_in.":00", $time_out.":00"])
->orWhereRaw("time_out between ? AND ?", [$time_in.":00", $time_out.":00"]);
})->get();
我正在尝试从Table
我的time_in
&time_out
是否在它们之间或它们是否在我的time_in
和之间获取所有数据time_out
。在这里不起作用的是:如果$time_in = 12:00
然后$time_out = 3:00
我的查询不会选择具有time_in
to11:00
的数据time_out = 4
。但是,如果我将其更改$time_in
为,1:00
则查询将起作用。如果我有11:00
or的数据12:00
并且如果我检查我的11:00
or12:00
是否在它们之间,它就不起作用
解决方案
我假设您对 $time_in 和 $time_out 使用 12 小时制,因为到 12:00 您似乎意味着午夜。
不满足 BETWEEN 条件是因为“12:00”大于“03:00”,在这种情况下 MySQL 将永远不会返回任何数据。
当表示 12:00am 时,您需要先将“12”翻译成“00”。
或者你应该找到另一种方法让 MySQL 知道你的意思是 12:00am 而不是 12:00pm。
此外,您如何区分例如凌晨 4 点和下午 4 点?
我很高兴我总是使用 24 小时制,上午 12:00 只是 00:00。
推荐阅读
- laravel - 困难的工作后队列关闭
- java - 如何修改我通过从api导入使用的android studio中的java代码
- python - OsmNx:SVG 和 PNG 图像具有不同的比例
- r - 查询 WikipediR 时,如何遍历一系列修订 ID?
- c# - c# DietPi下的Mono Cudafy运行失败
- java - 我如何将一小段黑色文本拆分为 Java 中的 Arraylist?
- android - Mapbox Android SDK:使用 symbolManager 添加制造商
- angularjs - 如何在AngularJS的index.route文件中注入configService
- angular - cdkDragFreeDragPosition 位置取决于之前的每个 cdkDrag 元素
- twilio - 使用 ngrok 地址来电自动设置 Twilio webhook 地址