使用unix时间戳从mysql数据库获取最近30分钟的记录

时间:2012-07-22 12:43:52

标签: mysql timestamp

我想从我的时间戳为unix格式的mysql数据库表中获取数据

在进行一些研究后,

使用了以下查询,但仍然无法获得显示空行的结果。任何人都可以帮忙

 SELECT *
 FROM bs_items
 WHERE  owner_id='3'
 AND timestamp > (now() - interval 30 minute) 

它应该工作不知道问题出在哪里。

TABLE: bs_items
==================================================
| log_id |  owner_id   |  item_code  | timestamp |
==================================================
| 1      | 10          | 100         | 12345     |
--------------------------------------------------
| 2      | 12          | 200         | 23456     |
--------------------------------------------------

2 个答案:

答案 0 :(得分:2)

已经有一段时间但我认为这可能是正确的:

SELECT * FROM bs_items WHERE 
datetime_column < DATE_SUB(NOW(), INTERVAL 30 MINUTE)

此外,您可以使用选择通过选择进行日期时间比较并将其放在查询中以获得小于。     选择'2012-07-22 13:50:14'+ INTERVAL 30 MINUTE

所以猜测:     SELECT * FROM表WHERE datetimecol&lt; (选择'2012-07-22 13:50:14'+ INTERVAL 30 MINUTE)

尝试运行查询以查看结果添加30分钟以查看要调试的结果:

select '2012-07-22 13:50:14' + INTERVAL 30 MINUTE

答案 1 :(得分:1)

经过足够长时间的努力,我发现我找到了完美的解决方案

   $sql=mysql_query("SELECT * FROM bs_items WHERE 
   owner_id='$loguser' AND timestamp > ( UNIX_TIMESTAMP( ) -600)
   order by timestamp desc");

它似乎给我想要的结果,分享它可能会帮助某人..