3

我想从我的时间戳为 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     |
--------------------------------------------------
4

2 回答 2

2

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

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

您也可以通过选择进行日期时间比较,并将其放置在查询中以获取小于。选择“2012-07-22 13:50:14”+ 间隔 30 分钟

所以猜测一下:SELECT * FROM table WHERE datetimecol < (select '2012-07-22 13:50:14' + INTERVAL 30 MINUTE)

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

select '2012-07-22 13:50:14' + INTERVAL 30 MINUTE
于 2012-07-22T12:52:27.903 回答
1

似乎在尝试了足够长的时间后,我找到了完美的解决方案

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

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

于 2012-07-22T14:08:44.547 回答