MySQL查询列表

时间:2012-03-21 23:41:55

标签: mysql

我将尽力解释这一点,如果需要,我会尽快提供更多信息。

我在军事时间每小时存储数据。我只需要存储一天的数据。我的表格结构如下

CREATE TABLE `onlinechart` (
  `id` int(255) NOT NULL AUTO_INCREMENT,
  `user` varchar(100) DEFAULT NULL,
  `daytime` varchar(10) DEFAULT NULL,
  `maxcount` smallint(20) DEFAULT NULL,
  `lastupdate` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=innodb AUTO_INCREMENT=2 DEFAULT CHARSET=latin1

“user”列对每个用户都是唯一的。所以我将为每个用户提供列表。

我正在使用的“白天”专栏将日期和时间存储在一起。因此,今天和小时它将是“2116”所以当天是21,当前小时是16。

“maxcount”列是每小时的数据。我每小时只跟踪一个总数。

“lastupdate”列只是一个用于删除24小时+旧数据的时间戳。

我在PHP中运行的脚本很适合跟踪。它为每个用户保留了总共24行数据,并删除了24小时之前的任何数据。我的问题是如何进行一个从当前小时/天开始的查询,并将过去24小时的maxcount拉出来并按顺序显示它们。

由于

1 个答案:

答案 0 :(得分:0)

你将遇到一个在年底附近处理这个问题。建议您切换到使用MySQL的本机时间戳类型(此处描述:http://dev.mysql.com/doc/refman/5.0/en/datetime.html)。然后你可以通过执行以下操作来获取最大数量:

SELECT * FROM onlinechart WHERE daytime >= ? ORDER BY maxcount

问号应替换为时间戳 - 86400(一天中的秒数)。