次のようなmysqlデータベースにデータを保存しています。
ID | DATE | INFO
-----------------------------
1 | 1389384821 | blabla
2 | 1389384821 | blabla2
3 | 1389384821 | blabla3
DATEは、PHPのtime()関数を使用してデータベースに追加する前に生成されるタイムスタンプです
このテーブルから過去24時間、または48時間、30日間に追加されたすべてのデータを取得したい...
私は試した
SELECT
info
FROM table
WHERE date > (LOCALTIMESTAMP() - 86400)
LOCALTIMESTAMP()の代わりに、CURDATE()も試しました。
私の間違いはどこですか?
私はSQLの専門家ではないので、これはばかげた質問に聞こえるかもしれません。
WHERE日付>(UNIX_TIMESTAMP(NOW())-86400)??これは良い解決策ですか?
こちらは24時間です
_SELECT info FROM table
WHERE date > UNIX_TIMESTAMP(NOW() - INTERVAL 1 DAY);
_
または
_SELECT info FROM table
WHERE date > UNIX_TIMESTAMP(NOW() - INTERVAL 24 HOUR);
_
またはあなたの方法
_SELECT info FROM table
WHERE date > (UNIX_TIMESTAMP(NOW()) - 86400);
_
こちらは48時間です
_SELECT info FROM table
WHERE date > UNIX_TIMESTAMP(NOW() - INTERVAL 2 DAY);
_
または
_SELECT info FROM table
WHERE date > UNIX_TIMESTAMP(NOW() - INTERVAL 48 HOUR);
_
またはあなたの方法
_SELECT info FROM table
WHERE date > (UNIX_TIMESTAMP(NOW()) - (86400 * 2));
_
こちらは30日
_SELECT info FROM table
WHERE date > UNIX_TIMESTAMP(NOW() - INTERVAL 30 DAY);
_
またはあなたの方法
_SELECT info FROM table
WHERE date > (UNIX_TIMESTAMP(NOW()) - (86400 * 30));
_
最後の式WHERE date > (UNIX_TIMESTAMP(NOW()) - 86400)
は実行可能ですが、秒数の差を計算する必要があります。私の追加の提案により、MySQLで日付の計算を行うことができます。