从datetime字段计算年和月条目

时间:2011-11-16 13:03:53

标签: mysql datetime

我在构建mysql查询时遇到问题:

我有这个表“tSubscribers”我存储了我的新闻邮件列表的订阅者。

表格如下(简化):

--
-- Table structure for tSubscriber
--
CREATE TABLE tSubscriber (
    fId INT UNSIGNED NOT NULL AUTO_INCREMENT,
    fSubscriberGroupId INT UNSIGNED NOT NULL,
    fEmail VARCHAR(255) NOT NULL DEFAULT '',
    fDateConfirmed DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
    fDateUnsubscribed TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',
    PRIMARY KEY (fId),
    INDEX (fSubscriberGroupId),
) ENGINE=MyISAM;

现在我想要完成的是一个图表,显示每个订阅者组每月的订阅和取消订阅。

所以我需要从fDateConfirmed,fDateUnsubscribed日期中提取年份和月份,计算它们并显示按订阅者组的月份和年份排序的计数。

我认为这个SQL查询变得非常复杂,我无法理解它。这甚至可以通过一个查询来实现。

1 个答案:

答案 0 :(得分:0)

您需要两个单独的查询,一个用于订阅,另一个用于取消订阅。

SELECT COUNT(*), YEAR(fDateConfirmed), MONTH(fDateConfirmed) FROM tSubscriber GROUP BY YEAR(fDateConfirmed), MONTH(fDateConfirmed)
SELECT COUNT(*), YEAR(fDateUnsubscribed), MONTH(fDateUnsubscribe ) FROM tSubscriber GROUP BY YEAR(fDateUnsubscribed), MONTH(fDateUnsubscribed)