つまり、次のようなテーブルがある場合:
id | time | name
1 | 1354382314 | test1
2 | 1374769114 | test2
3 | 1322759914 | test3
たとえば、1 週間前、1 か月前、または 1 年前に作成されたレコードを選択する方法は? mysql
関数でのみ可能ですか、それともどうすればできphp
ますか?
タイムスタンプは常に増加する数値であるため、要求された範囲の開始スタンプと終了スタンプを単純に計算して、
WHERE `time` >= 'startstamp' AND `time` <= 'endstamp'
1 週間前のスタンプを取得するには、php 関数を使用できますstrtotime("-1 week")
。月などと同様。
現在のスタンプが必要な場合は、 を使用してtime()
ください。
select id,time,name from your_table where (current_timestamp-time)>7*24*60*60;
7*24*60*60 は 1 週間を表します
mysql関数でも可能だと思います
お気に入り、
select * from table where time > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 WEEK))
select * from table where time > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 YEAR))
select * from table where time > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 MONTH))