我有一张表,可以每15分钟保存一次上传/下载统计信息。
这就是表格的样子
| ID | timestamp | upload | download | packetssent | packetsreceived | 1 | 1328828401 | 343245 | 93473463 | 4343423 | 3435664 | 2 | 1328829301 | 343245 | 93473463 | 4343423 | 3435664
我想要的是当你在页面上第一次看到总下载/上传时。然后是可用月份列表。 (所以目前只有二月份),一旦你点击一个月,就会显示当天和他们的总数,当你点击一天时,你会看到那一天的所有记录
我需要建议如何做到这一点。
提前致谢
答案 0 :(得分:2)
要提取各种值,请使用MySQL中的日期/时间函数
DAY(from_unixtime(timestamp))
MONTH(from_unixtime(timestamp))
YEAR(from_unixtime(timestamp))
HOUR(FROM_UNIXTIME(timestamp))
MINUTE(FROM_UNIXTIME(timestamp))
SECOND(FROM_UNIXTIME(timestamp))
您可以在group by
部分中使用这些信息,根据各种时间范围提取信息
请查看:http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html获取完整列表
答案 1 :(得分:1)
尝试以下(当年):
SELECT
FROM_UNIXTIME(timestamp, "%m") AS m,
FROM_UNIXTIME(timestamp, "%Y") AS Y,
SUM(packetssent ) AS sent,
SUM(packetsreceived) AS received
FROM atable
GROUP BY Y, m HAVING Y=YEAR(NOW())
答案 2 :(得分:0)
我认为你可以使用
SELECT DISTINCT MONTH(DATE(timestamp)) FROM Table.
你可能会离开
SELECT DISTINCT MONTH(timestamp) FROM table.
但是如果你能为MONTH()函数的documentation声明你可以将时间戳传递给它。