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

标签 mysql date

我在 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/

相关文章:

php - 选择 mySQL 中具有不同 ID 的最新条目

sql - 如何以及何时更新 MySQL 索引?

java - 有没有办法根据美国格式字符串获取本地化日期/时间?

MySQL聊天系统显示发件人/收件人的最后一条消息和其他人的姓名

mysql - MySQL 的大型后台更新

带左连接和 LIKE 的 mysql 分页 -> 超慢

java - 在 Java 中遍历日期

mysql - 更改 SQL 中的日期

r - 在 R 中格式化没有前导零的日期

mysql - 显示一串字符中的日期