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)

また、select を使用して日付と時刻の比較を行い、select を使用してそれをクエリ内に配置することもできます。'2012-07-22 13:50:14' + INTERVAL 30 MINUTE を選択

推測では: 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 に答える