2012-04-23 62 views
0

我想用这样一种方式查询一个数据库,在这种方式下,所有在给定时间出现的行都被提取。 我的数据库表有一个日期列持有这样随时间查询mysql数据库

2012-04-23 08:39:10 
2012-04-23 08:41:37 
2012-04-23 13:49:56 

我想包含像前5分钟的时间所有行的数据。其实我在这里尝试的是显示所有在线5分钟前的用户。这些日期和时间是在他们上一次活动时创建的。 任何帮助将非常感激。

+0

我试图这样'Date'> SUBDATE(NOW(),间隔“ 5'MINUTE)) 但显然它没有奏效...... :( – Prashank 2012-04-23 20:17:18

+0

)当你尝试这个时,错误或问题是什么,因为几乎所有在这里提供的所有解决方案都会给出相同的结果,所有这些都是c orrect。 SUBDATE(NOW(),INTERVAL'5'MINUTE)','DATE_SUB(CURRENT_TIMESTAMP,INTERVAL 5 MINUTE)','subtime(now(),'00:05:00')' – 2012-04-23 20:24:23

+0

@Prashank:SQL会给你现在和5分钟前的表中所有记录。这听起来像你想要的只是* 5分钟前*的记录。为此,您需要在SQL中使用'='或尝试使用'BETWEEN'。 – jason 2012-04-23 20:28:07

回答

3

这应该工作,你

select * from tablename where ((datecol > subtime(now(),'00:05:00'))) 
+0

谢谢,我会试试这个 – Prashank 2012-04-23 20:18:02

1

类似下面应该做的伎俩:

SELECT * 
FROM <table> 
WHERE 
    <date column> 
    BETWEEN 
    DATE_SUB(NOW(), INTERVAL 5 MINUTE) 
    AND 
    DATE_SUB(NOW(), INTERVAL 6 MINUTE) 
; 
1
SELECT * 
FROM `TABLE_NAME` 
WHERE `DATECOLUMN` > DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 5 MINUTE)