我在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
答案 0 :(得分:1)
您可以使用DATEADD()
。
SELECT COUNT(sno) AS total
FROM xyz
WHERE DATE_ADD(dated,1 MONTH) < NOW()
AND is_decided = 1