我在 xyz 表中有行,其中每条记录都有一列 dated 和一列 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 数据库中的当前日期。 (现在())。
任何帮助将不胜感激。
编辑 我需要根据查询来满足条件的所有记录,并且所有记录必须是在当前月份之前。
编辑
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
最佳答案
您可以使用DATEADD()
.
SELECT COUNT(sno) AS total
FROM xyz
WHERE DATE_ADD(dated,1 MONTH) < NOW()
AND is_decided = 1
关于MySql 统计表中当前月份和当前年份之前的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35511530/