【问题标题】:SQL Group By of Date not WorkingSQL Group By of Date 不工作
【发布时间】:2011-10-04 01:59:05
【问题描述】:

我有这个 SQL 代码:

SELECT EXTRACT(MONTH FROM timestamp) AS StatMonth, timestamp
  FROM server_stats
 GROUP BY StatMonth
 ORDER BY StatMonth DESC;

架构:

CREATE TABLE IF NOT EXISTS `server_stats` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `timestamp` int(11) NOT NULL,
  `players_online` bigint(20) NOT NULL,
  `active_players` bigint(20) NOT NULL,
  `total_copper` bigint(20) NOT NULL,
  `total_items` bigint(20) NOT NULL,
  `total_item_weight` bigint(20) NOT NULL,
  `total_houses` bigint(20) NOT NULL,
  `total_boats` bigint(20) NOT NULL,
  `total_pets` bigint(20) NOT NULL,
  `total_experience` bigint(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=63 ;

样本数据:

INSERT INTO `server_stats` (`id`, `timestamp`, `players_online`, `active_players`,
        `total_copper`, `total_items`, `total_item_weight`, `total_houses`,
        `total_boats`, `total_pets`, `total_experience`) VALUES
(53, 1317288600, 227, 718, 155037828, 68231283, 25169498, 14822, 2112, 683, 7776385802),
(54, 1317290400, 224, 718, 155038479, 68233576, 25163526, 14822, 2112, 683, 7776669410),
(55, 1317292200, 215, 718, 155100860, 68239613, 25160397, 14822, 2112, 683, 7776933725),
(56, 1317294000, 201, 717, 155095895, 68240842, 25159809, 14822, 2112, 683, 7777196134),
(57, 1317295800, 204, 718, 155090280, 68248539, 25170275, 14822, 2112, 683, 7777419238),
(58, 1317297600, 194, 718, 155105906, 68259213, 25163212, 14823, 2112, 683, 7777657681),
(59, 1317682800, 230, 724, 157323143, 68731571, 25185326, 14908, 2119, 692, 7834358253),
(60, 1317684600, 213, 724, 157323178, 68733325, 25186412, 14908, 2119, 692, 7834637558),
(61, 1317686400, 219, 724, 157314147, 68737824, 25197057, 14908, 2119, 692, 7834904982),
(62, 1317688200, 225, 725, 157329100, 68736384, 25190554, 14909, 2119, 692, 7835169244);

我使用上面的 SELECT 语句来显示每个月。在这种情况下,应该是九月(9)和十月(10)。但是,它只显示 9 月,而不是 10 月。

谁能给我解释一下?

【问题讨论】:

  • 这在 MySQL 5.1 中运行良好,前提是您使用 MONTH FROM from_unixtime(timestamp)。您使用的是哪个 SQL 服务器?
  • 也许我很困惑,但是使用 DATE() 而不是 int 作为日期怎么样?
  • mySQL 5.1.56。并且“imm”您的代码在那里解决了它!我很感激! :D
  • @imm :请发表您的评论作为答案,以便完成此问题。

标签: mysql sql timestamp


【解决方案1】:

这在 MySQL 5.1 中可以正常工作,前提是您使用 MONTH FROM from_unixtime(timestamp)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-19
    • 2011-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多