两个值之间的日期 - Laravel SQL

Posted

技术标签:

【中文标题】两个值之间的日期 - Laravel SQL【英文标题】:Date between two values - Lavarel SQL 【发布时间】:2021-11-28 22:10:29 【问题描述】:

我有一个这样的结构表:Start_dateEnd_date

现在有了今天的日期,我应该去获取所有数据,包括来自Start_DateEnd_Date 的数据,我该怎么办?

我试过了

SELECT * 
FROM text 
WHERE Start_date BETWEEN '2021-10-10' AND '2021-10-08' 
OR End_date BETWEEN '2021-10-08' AND '2021-10-10

但无济于事......

【问题讨论】:

请添加示例数据以明确您在此处尝试执行的操作。 我需要选择所有由两个日期组成的字段 start_date 和 end_date 日期以这种格式添加 2021-10-10 (yyyy/mm/dd) @JDPinko 请编辑您的问题并添加表格描述、插入格式的一些数据以及基于您将提供的数据的预期结果 你需要 laravel eloquent 还是 mysql 查询? “但无济于事”并没有告诉我们太多。你有错误吗?如果是什么错误。你会得到意想不到的结果吗?如果是这样,结果是什么?您的预期是什么? 【参考方案1】:
    如果您只想获取从开始到结束日期的数据,您可以使用这个雄辩的代码
$start_date = "2020-10-20";
$end_date = "2021-10-20";
Text::where(function ($wh) use ($start_date, $end_date) 
   $wh->whereBetween('Start_date', [$start_date, $end_date])->orwhereBetween('End_date', [$start_date, $end_date]);
)->get();

这是来自上述雄辩代码的原始查询

select * from `users` where (`Start_date` between '2020-10-20' and '2021-10-20' or `End_date` between '2020-10-20' and '2021-10-20')
    如果您想查找从开始到结束日期的数据,包括今天的日期,您可以使用这个雄辩的代码
$start_date = "2020-10-20";
$end_date = "2021-10-20";
Text::where(function ($wh) use ($start_date, $end_date) 
   $today_date = date('Y-m-d');
   $wh->where(function ($or_where) use ($start_date, $end_date) 
      $or_where->whereBetween('Start_date', [$start_date, $end_date])
               ->orwhereBetween('End_date', [$start_date, $end_date]);
            )->orwhereRAW("('$today_date' between `Start_date` and `End_date`)");
)->get();

这是来自上述雄辩代码的原始查询

select * from `text` where ((`Start_date` between '2020-10-20' and '2021-10-20' or `End_date` between '2020-10-20' and '2021-10-20') or ('2021-10-09' between `Start_date` and `End_date`))

【讨论】:

【参考方案2】:

Laravel 中的 whereBetween 方法将确定项目值是否在给定范围内。

$start = '2021-10-08';
$end = '2021-10-10';

Text::whereBetween('start_date', [$start, $end])
      ->whereBetween('end_date', [$start, $end])
      ->get();

【讨论】:

以上是关于两个值之间的日期 - Laravel SQL的主要内容,如果未能解决你的问题,请参考以下文章

从 Laravel 中的日期列查询两个日期之间的数据

计算两个日期之间的年份 laravel

Laravel中两个日期之间的差异

如何在laravel项目中找到两个日期之间的结算金额

有没有办法在 Laravel 中取两个日期之间的数字并减去它

如何使用 laravel 中的 query() 函数对两个日期之间的数据进行排序