2016-02-19 83 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()但仍然沒有運氣的查詢 –

相關問題