我有两个名为 created_at 和 updated_at(timestamps) 的字段,我想在我的 where 子句中的这些日期之间进行搜索

i have two fields named as created_at and updated_at(timestamps) and i want to search between these dates in my where clause

我想将输入日期作为参数并在输入中给出的日期之间进行搜索。

这些是 laravel 提供的 timestamps(),用于创建 created_at 和 upated_at.I 这两个字段,希望在 created_at 中给出的这些日期之间进行搜索和 updated_at 但无法找到这些日期之间的数据。 以下是我创建的代码

` $startDate = $request->input('created_at');
  $endDate   = $request->input('updated_at');

->select()
->whereBetween('created_at','updated_at',[$startDate,$endDate])
->get();`

我认为whereBetween只接受2个参数。第一个是列名,第二个是包含要测试的值的数组。检查:https://laravel.com/docs/5.5/queries#where-clauses

你会想要这样的东西:

->whereBetween('created_at', [$startDate,$endDate])
->whereBetween('updated_at', [$startDate,$endDate])

错误:

Argument 2 passed to Illuminate\Database\Query\Builder::whereBetween() must be of the type array

是因为whereBetween()的第二个参数是一个数组,而你这里传的是一个字符串'updated_at'。所以改成喜欢:

->whereBetween('created_at', [$startDate,$endDate])
->whereBetween('updated_at', [$startDate,$endDate])

Reference