1

I have rows in a MySQL database, and each has a timestamp value. (ie 1340296188)

I am trying to find all entries for the last 7 days. I know how to do a query to find all WITHIN the last 7 days, something like:

$lastweek = time() - 604800;
$results = mysql_query("SELECT * FROM table WHERE timestamp > $lastweek");

However, I need to be able to get each day seperately. How would I do this query? I don't know how to find from the above results which ones are for which specific date.

4

2 に答える 2

4

これを行うには1つ以上の方法があると思います。これが1つです:

SELECT * 
FROM table 
WHERE timestamp > CURRENT_DATE - INTERVAL 1 WEEK
GROUP BY DAY(timestamp)
于 2012-06-22T13:49:07.853 に答える
2

あなたはすでにほとんどそこにいます。のタイムスタンプ フィールドを解析するだけです$results

1 日は (60 * 60 * 24) 秒なので、各行のタイムスタンプ フィールドを 86400 で割って整数にすると、このエントリが発生した前の日数になります。

データセットの各行について:

$daysAgo = int($row["timestamp"] / 86400);
于 2012-06-22T13:54:43.200 に答える