2013-06-13 48 views
2

我需要查詢一個數據庫,該數據庫將返回該月份期間訂閱特定服務的人數。 我用下面的查詢更改月份的sql查詢

select subscriberid, count(*) from ABC where updated time like '2013-05-%' ; 

在此查詢我需要更新Updatedtime場是2013-06-%在下月來了,然後07下一個下個月來的時候。我希望查詢在下個月到來時自動更新,而不是每次都手動更改。

另請注意,我一次只需要一個月的數據,因此請不要建議按月分組作爲答案。

回答

1

以下應很好地工作:

SELECT 
    subscriberid, 
    count(*) 
from 
    ABC 
where 
    updatedtime LIKE CONCAT(DATE_FORMAT(NOW(),'%Y-%m'), '-%') 
0

我認爲你可以使用DATE_FORMAT功能

SELECT subscriberid, count(*) as total 
FROM ABC 
WHERE DATE_FORMAT(updated_time, "%Y-%m") = "2013-05"; 
3

一種方式做到這一點

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()) 
0

使用以下查詢:

SELECT subscribersid, updated, COUNT(*) from subscribers 
    WHERE YEAR(updated) = YEAR(NOW()) 
     AND MONTH(updated) = MONTH(NOW()) 

你可以看到它在這個SQL Fiddle

希望工作這有助於