将日期时间加1小时,并根据小时和分钟与当前时间进行比较

时间:2017-04-26 13:54:54

标签: mysql laravel

我写了一个查询,其中我将一小时添加到数据库中的日期时间,并根据分钟和小时将该时间与当前时间进行比较。

id| postid |type |status| counter| datetime | autoreposttime 1 | 139 | M | P | 1 | 2017-04-26 10:49:23 | 60 2 | 140 | M | P | 1 | 2017-04-26 10:49:27 | 60 3 | 141 | M | P | 1 | 2017-04-26 10:49:31 | 60 4 | 142 | M | P | 1 | 2017-04-26 10:49:34 | 60 的表结构:

posts

post_id | locationid | priority_time 81 | 1 | 2017-04-20 18:29:17 82 | 27 | 2017-04-20 18:29:19 85 | 27 | 2017-04-20 18:29:07 的表结构:

datetime + 1 hour

这是我编写的SQL查询,我想要检索$posts = DB::table('upgrades') ->join('posts','posts.post_id','=','upgrades.postid') ->where(DB::raw('DATE_FORMAT(DATE_ADD(`upgrades`.`datetime`, INTERVAL 1 HOUR),"%Y-%m-%d %H:%i")'),$datetime) ->select('posts.*','upgrades.*')->get(); 等于当前时间的行。

where

我将数据设为null,我认为{{1}}条件存在问题。我的查询出了什么问题?

1 个答案:

答案 0 :(得分:1)

一种方法是使用碳。如果我理解正确,你需要指定分钟的结果,所以这里有一个例子:

$time = Carbon::now()->subHour();
$posts = ....
    ->whereBetween('datetime', [$time->format('Y-m-d H:i:00'), $time->format('Y-m-d H:i:59'])
    ....
    ->get();