2014-02-11 3 views
0

이번 달의 기록 수는 어떻게 얻습니까?이번 달의 기록 수는 어떻게 계산합니까?

이번 달 사용자를 계산하고 싶습니다. "이번 달"은 mysql 자체에 의해 계산되어야한다. SQL을 작성하는 방법?

enter image description here

SET FOREIGN_KEY_CHECKS=0; 

-- ---------------------------- 
-- Table structure for `a` 
-- ---------------------------- 
DROP TABLE IF EXISTS `a`; 
CREATE TABLE `a` (
    `id` int(11) NOT NULL auto_increment, 
    `name` varchar(30) default NULL, 
    `date` datetime default NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; 

-- ---------------------------- 
-- Records of a 
-- ---------------------------- 
INSERT INTO `a` VALUES ('1', 'jimy', '2014-02-11 09:24:42'); 
INSERT INTO `a` VALUES ('7', 'khon', '2014-02-19 09:24:50'); 
INSERT INTO `a` VALUES ('3', 'tina', '2014-01-11 09:25:03'); 
INSERT INTO `a` VALUES ('4', 'kelvin', '2013-12-11 09:25:09'); 
INSERT INTO `a` VALUES ('5', 'ricky', '2014-02-12 09:25:14'); 

답변

1

MONTH (날짜)을 시도 할 수 있습니다, 그것은 여러 년 데이터와 작동하지 않습니다.

SELECT COUNT(*) count 
FROM a 
WHERE EXTRACT(YEAR_MONTH FROM a.date) = EXTRACT(YEAR_MONTH FROM NOW()) 

아니면 사용할 수 : 02 알 수없는

SELECT COUNT(*) count 
FROM a 
WHERE DATE_FORMAT(a.date,'%Y%m') = DATE_FORMAT(NOW(),'%Y%m') 
2

만 달 수를 반환이

Select count(*) 
FROM  a 
WHERE  MONTH(date) = MONTH(NOW()) 
GROUP BY MONTH(date) 
+0

없는 02, 당신은 두 달 원하는 –

+0

무엇 ??? –

+0

이번 달이 03 인 경우, MySQL에 03을 가져 오려하지만, "03"에 정적 num이 없도록하고 싶습니다. 이번 달에는 SQL이 변경 될 수 없습니다. –

관련 문제