2011-09-21 41 views
0

是有一個比較有效的方式,從本週獲得來回mA錶行,上週,當月和當年這個MYSQL REPORTING

// current month 
    SELECT * FROM crm_tasks WHERE YEAR(date_completed) = YEAR(CURDATE()) AND MONTH(date_completed) = MONTH(CURDATE()) 

    // current week 
    SELECT * FROM crm_tasks WHERE YEAR(date_completed) = YEAR(CURDATE()) AND WEEK(date_completed) = WEEK(CURDATE()) 

    // last week 
    SELECT * FROM crm_tasks WHERE YEAR(date_completed) = YEAR(CURDATE()) AND WEEK(date_completed) = WEEK(CURDATE()) - 1 


// current year 
SELECT * FROM crm_tasks WHERE YEAR(date_completed) = YEAR(CURDATE()) 

回答

0

您應該能夠使用類似的查詢

SELECT * FROM crm_tasks 
WHERE date_completed >= @FirstDayOfYear AND date_completed < @FirstDayOfNextYear 

凡@FirstDayOfYear和@FirstDayOfNextYear被填入適當的。如果你在date_created上有索引,這應該工作得相當快。這可以改變你想要使用的任何時期。