MySQL获取日期大于8个月的记录

MySQL获取日期大于8个月的记录,mysql,sql,date,select,where-clause,Mysql,Sql,Date,Select,Where Clause,我如何从MySQL数据库获取记录,其中“上次更新”大于“8个月”或(“日期为空”)且(“员工数量”小于等于500) 表格详情: CREATE TABLE `companies` ( `company_id` int(11) NOT NULL AUTO_INCREMENT, `company_name` varchar(255) NOT NULL COMMENT, `Number_of_employees` int(11) NOT NULL, `Last_updated` dat

我如何从MySQL数据库获取记录,其中“上次更新”大于“8个月”或(“日期为空”)且(“员工数量”小于等于500)

表格详情:

CREATE TABLE `companies` (
  `company_id` int(11) NOT NULL AUTO_INCREMENT,
  `company_name` varchar(255) NOT NULL COMMENT, 
  `Number_of_employees` int(11) NOT NULL,
  `Last_updated` datetime NOT NULL,
  PRIMARY KEY (`company_id`),
  UNIQUE KEY `Company_Name` (`company_name`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 
这就是我到目前为止所做的:

SELECT * FROM companies WHERE Last_updated < (now() - interval 8 month);
从上次更新的公司中选择*(现在()-间隔8个月);
试试这个:

SELECT * 
FROM companies 
WHERE Number_of_employeesless <= 500 AND 
     (Last_updated IS NULL OR DATE(Last_updated) >= (CURRENT_DATE() - INTERVAL 8 MONTH));
选择*
来自公司
其中,员工人数=(当前日期()-间隔8个月);

SELECT * 
FROM companies 
WHERE Number_of_employeesless <= 500 AND 
     (Last_updated IS NULL OR DATE(Last_updated) >= DATE_SUB(CURRENT_DATE(), INTERVAL 8 MONTH));
选择*
来自公司
其中,员工人数=日期(当前日期(),间隔8个月);

这应该可以做到:

SELECT * FROM companies 
WHERE last_updated > (now() - INTERVAL 8 MONTHS) 
AND number_of_employeesless <= 500
从公司中选择*
上次更新的地方>(现在()-间隔8个月)

感谢Saharsh Shah So qucik回答让我试着让你知道:)这里使用
DATE(Last\u updated)
是没有意义的,更糟糕的是,它会阻止MySQL使用OP可能在
Last\u updated
列上的任何索引,导致每次的完全扫描。把它从这种情况下扔掉。它应该是上次更新的日期子…