MySql计算表中当前月份和当前年份之前的所有行

时间:2016-02-19 17:43:53

标签: mysql date

我在xyz表中有行,其中每个记录的列日期,一列 is_decided ,其中包含1或0.

我的问题是我希望得到所有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数据库的当前日期。 (NOW())。

任何帮助将不胜感激。

修改 我需要根据查询的所有记录来确定条件,所有记录必须在当月之前。

修改

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

1 个答案:

答案 0 :(得分:1)

您可以使用DATEADD()

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