2016-02-19 84 views
0

我在XYZ表行,其中有一列和一列被is_decided持有1或0。MySql的计数表,该表是当前的月份和当年

每个记录之前的所有行

我的问题是,我想要得到所有具有is_decided = 1的行,并且日期列必须有当前月份之前的一个月。

为此,我使用下面的查询:

SELECT COUNT(sno) AS total 
FROM xyz 
WHERE 
dated > DATE_SUB('2016-02-01',INTERVAL 1 MONTH) AND 
is_decided = 1 

这里查询硬编码的日期是从MySQL数据库的当前日期。 (现在())。

任何帮助将不胜感激。

编辑 我需要根据这应该从目前的月份之前一定的资格条件,所有的记录必须查询的所有记录。

编辑

SHOW CREATE TABLE xyz 
-------------------------------- 
CREATE TABLE `xyz` (
`sno` INT(11) NOT NULL AUTO_INCREMENT, 
`dated` DATE NOT NULL COMMENT 'fixed date to this fir for hearing', 
`is_current` TINYINT(1) NOT NULL DEFAULT '0' COMMENT 'current record', 
`is_decided` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '0=not decided 1=decided', 
`date_entry` DATE NOT NULL COMMENT 'entry of this record', 
PRIMARY KEY (`sno`) 
) ENGINE=INNODB AUTO_INCREMENT=45 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci 
+0

运行您的查询的结果是什么? – Marquez

+0

作为结果返回5,而表格只有3条应显示的记录。两条记录有2016-02-08,2016-02-15和其他三条记录有2016-01-29, –

+0

这个月是第一个截止?当前写入的查询将返回日期大于'2016-01-01'和'is_decided = 1'的所有记录。 –

回答

1

你可以使用DATEADD()

SELECT COUNT(sno) AS total 
FROM xyz 
WHERE DATE_ADD(dated,1 MONTH) < NOW() 
AND is_decided = 1 
+0

都将为真?不是吗? –

+0

@AbdulRahman我编辑了我的答案。这是解决你的问题吗? – Wistar

+0

我正在使用MySql 5.7,并且它返回错误,我查询了date_add()但仍然没有运气的查询 –

相关问题