我总是遇到复杂的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
';
Run Code Online (Sandbox Code Playgroud)
我想在一小时内获得最多6行.我的查询错了吗?当我测试时,它似乎没有在接下来的一小时内发布即将发生的事件.
这个的正确语法是什么?
zom*_*bat 11
我将假设你正在查看一组包含一系列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
Run Code Online (Sandbox Code Playgroud)
否则,您的查询正在查找date_time 恰好为 "now + 1 hour"的记录.我假设您的所有日期都不是特定的日期.;)
为了澄清一点,DATE_ADD()并DATE_SUB()返回确切的时间戳,所以上面的查询粗略地转换为类似的东西SELECT ... WHERE date_time = '2010-04-14 23:10:05' ORDER BY ...,我认为这不是你想要的.
| 归档时间: |
|
| 查看次数: |
3825 次 |
| 最近记录: |