我需要查询一个数据库,该数据库将返回当月订阅特定服务的人数。我使用以下查询
select subscriberid, count(*) from ABC where updated time like '2013-05-%' ;
在此查询中,我需要将Updatedtime
字段更新为2013-06-%
下个月的时间,然后下个月的时间为 07。我希望查询在下个月到来时自动更新,而不是每次都手动更改。
另请注意,我一次需要特定月份的数据,因此请不要建议按月份分组作为答案。
我需要查询一个数据库,该数据库将返回当月订阅特定服务的人数。我使用以下查询
select subscriberid, count(*) from ABC where updated time like '2013-05-%' ;
在此查询中,我需要将Updatedtime
字段更新为2013-06-%
下个月的时间,然后下个月的时间为 07。我希望查询在下个月到来时自动更新,而不是每次都手动更改。
另请注意,我一次需要特定月份的数据,因此请不要建议按月份分组作为答案。
一种方法
SELECT subscriberid, COUNT(*)
FROM ABC
WHERE YEAR(updated_time) = YEAR(CURDATE())
AND MONTH(updated_time) = MONTH(CURDATE())
或者
SELECT subscriberid, COUNT(*)
FROM ABC
WHERE updated_time BETWEEN ADDDATE(LAST_DAY(SUBDATE(CURDATE(), INTERVAL 1 MONTH)), 1)
AND LAST_DAY(CURDATE())
以下应该可以正常工作:
SELECT
subscriberid,
count(*)
from
ABC
where
updatedtime LIKE CONCAT(DATE_FORMAT(NOW(),'%Y-%m'), '-%')
我认为你可以使用DATE_FORMAT
功能
SELECT subscriberid, count(*) as total
FROM ABC
WHERE DATE_FORMAT(updated_time, "%Y-%m") = "2013-05";
使用以下查询:
SELECT subscribersid, updated, COUNT(*) from subscribers
WHERE YEAR(updated) = YEAR(NOW())
AND MONTH(updated) = MONTH(NOW())
你可以看到它在这个SQL Fiddle中工作
希望这可以帮助