显示MySQL中的日期时间在下一个小时内的行

我总是遇到复杂的SQL查询问题.

这就是我所拥有的

$query = '
            SELECT id,
                   name, 
                   info, 
                   date_time
            FROM acms_events
                WHERE date_time = DATE_SUB(NOW(), INTERVAL 1 HOUR)
                    AND active = 1
            ORDER BY date_time ASC
            LIMIT 6
        ';

我想在一小时内获得最多6行.我的查询错了吗?当我测试时,它似乎没有在接下来的一小时内发布即将发生的事件.

这个的正确语法是什么?

我将假设你正在查看一组包含一系列DATETIME值的记录,所以你可能想要更像这样的东西:

SELECT id,
       name, 
       info, 
       date_time
FROM acms_events
    WHERE date_time < DATE_ADD(NOW(), INTERVAL 1 HOUR)
        AND date_time >= NOW()
        AND active = 1
ORDER BY date_time ASC
LIMIT 6

否则,您的查询正在查找date_time恰好为“now 1 hour”的记录.我假设您的所有日期都不是特定的日期. 😉

为了澄清一点,DATE_ADD()和DATE_SUB()返回确切的时间戳,因此上面的查询大致转换为SELECT … WHERE date_time =’2010-04-14 23:10:05’ORDER BY …,我认为不是你想要的.

本站公众号
   欢迎关注本站公众号,获取更多程序园信息
开发小院