php - MySQL:验证费率范围内的日期范围(laravel 可选)

标签 php mysql laravel

嘿,伙计们(和女孩们)

有人可以指出在日期范围内验证/搜索日期范围吗?我使用 Laravel PHP,但原始 SQL 也很完美。

我想验证日期范围内是否存在日期范围。基本上我想要一个可靠的验证以避免重叠的日期范围。

示例(以及我目前的概念)(laravel 语法)

->where('start_date','>=',$myrange_start) ->where('start_date','<=',$myrange_end)

这将验证数据库中日期范围内的开始日期

->where('start_end','>=',$myrange_start) ->where('start_end','<=',$myrange_end)

这将验证数据库中日期范围内的结束日期

对我也有用的是

->whereRaw('? between start_date and end_date', [$today])

但是,我想要实现的是这样说

->whereRaw('? between start_date and end_date', [$myrange_start, $myrange_end])

看看是否有日期范围

a) 开始:开始时、开始和结束之间、结束时 b) 开始:结束 c) end: 在开始时,在开始和 en 之间,在结束时 d) 在开始日期之前开始并在结束日期之后结束 e) 在开始日期之后开始并在结束日期之前结束

这可能吗?

最佳答案

这是重叠范围问题,引用 this canonical SO answerWHERE 子句应该类似于:

WHERE new_start < existing_end
    AND new_end > existing_start;

将其转换为 Laravel 代码:

->where('start_date', '<', $myrange_end)
->where('start_end', '>', $myrange_start)

如果两个范围之间存在重叠,则返回 true。如果您想知道是否有重叠,那么我们可以尝试:

->where('start_date', '>=', $myrange_end)
->orWhere('start_end', '<=', $myrange_start)

关于php - MySQL:验证费率范围内的日期范围(laravel 可选),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54033928/

相关文章:

MySQL UWP "Could not load file or assembly"

mysql - 返回两个查询的任一结果

c# - 关于SQl查询二

php - Eloquent laravel 模型空 id

javascript - Laravel 5 js 被 app.js 阻塞

PHP:如何解析 JSON 数据

php - 如何使用 PHP 获取 XML 文档中的图像元素?

php - 将整数转换为数组

php - 了解 OuterIterator 接口(interface) PHP

laravel - updateExistingPivot() 不起作用