Select 使用 Carbon 和 DB 的高级 where 子句和时间戳
Select with advanced where clauses and timestamp using Carbon and DB
我有一个代码可以从 table 生成 SQL 查询。
我想要 select 个存在于日期和另一个字段中的真实值之间的项目。
DB 在建筑和 Carbon 外墙中的使用,遵循 laravel 5 中有关如何使用 Carbon 的建议。
但是我没有得到我returns所有行
的效果
private function runBids() {
$dt = Carbon::parse(Config::get('constants.start_lot'));
$start = $dt->toDateTimeString(); // 2006-05-08 08:34:59
$end = $dt->addDay()->startOfDay(); // 2006-05-09 00:00:00
$lots = DB::table('lots')
->select('id')
->where('end',false)
->where('end_auction', '<=', $end)
->where('end_auction', '=>', $start) // Not work. Return 0 results
// if comment ->where('end_auction', '=>', $start) result 39 results with date
// between dates
// (start it's date of first element of table order by end_auction)
->get();
$lots_id = array();
foreach ($lots as $value){
$lots_id[] = $value->id;
}
dd($lots_id);
}
除了 $start
参数上使用的运算符外,一切似乎都是正确的。你有
->where('end_auction', '=>', $start)
你应该
->where('end_auction', '>=', $start)
注意 =>
和 >=
之间的区别。第一个抛出 MySQL 错误。您可以尝试将该代码包装在 try ... catch
块周围,并检查异常消息。
您还可以使用 记录执行的查询,以便在您未获得预期结果时检查执行的查询。
我有一个代码可以从 table 生成 SQL 查询。 我想要 select 个存在于日期和另一个字段中的真实值之间的项目。
DB 在建筑和 Carbon 外墙中的使用,遵循 laravel 5 中有关如何使用 Carbon 的建议。
但是我没有得到我returns所有行
的效果private function runBids() {
$dt = Carbon::parse(Config::get('constants.start_lot'));
$start = $dt->toDateTimeString(); // 2006-05-08 08:34:59
$end = $dt->addDay()->startOfDay(); // 2006-05-09 00:00:00
$lots = DB::table('lots')
->select('id')
->where('end',false)
->where('end_auction', '<=', $end)
->where('end_auction', '=>', $start) // Not work. Return 0 results
// if comment ->where('end_auction', '=>', $start) result 39 results with date
// between dates
// (start it's date of first element of table order by end_auction)
->get();
$lots_id = array();
foreach ($lots as $value){
$lots_id[] = $value->id;
}
dd($lots_id);
}
除了 $start
参数上使用的运算符外,一切似乎都是正确的。你有
->where('end_auction', '=>', $start)
你应该
->where('end_auction', '>=', $start)
注意 =>
和 >=
之间的区别。第一个抛出 MySQL 错误。您可以尝试将该代码包装在 try ... catch
块周围,并检查异常消息。
您还可以使用