Mysql 如何比较两个日期

Mysql 如何比较两个日期,mysql,sql,Mysql,Sql,我正在尝试创建一个报告函数,我在数据库中存储了一些具有特定值(closeDate)的数据,该值只能是第7个或第21个,以下是我的表的示例: 我想做的是每22次执行一次查询,以选择所有状态为“活动”或“批准时”且CloseDate

我正在尝试创建一个报告函数,我在数据库中存储了一些具有特定值(closeDate)的数据,该值只能是第7个或第21个,以下是我的表的示例:

我想做的是每22次执行一次查询,以选择所有状态为“活动”或“批准时”且CloseDate<到22次(Curdate)的注册表。我有这个查询,但是这个查询显示的和图片中的完全一样,我希望查询只显示Id=00001和00003的数据,因为Id 00002 CloseDate(2016-10-21)不小于2016-09-22(curdate)

选择tbl_usuarios.Correo、tbl_alertas.Id、tbl_alertas.Purpose、tbl_alertas.Status、tbl_alertas.OpenDate、tbl_alertas.CloseDate、tbl_alertas.Owner、tbl_alertas.ValueStream、tbl_alertas.Family
来自tbl_usuarios
tbl_usuarios.Nombre=tbl_alertas.Owner上的内部连接tbl_alertas
其中状态='On approve'或状态='Active'和CloseDate

我做错了什么?

您可能需要在WHERE条件下重新排列您的子句。它既有
又有
,因此可能无法按预期进行解释

我想试试这样的东西:

WHERE (STATUS = 'On approve' OR STATUS = 'Active') AND CloseDate < CURDATE() 
选择tbl_usuarios.Correo、tbl_alertas.Id、tbl_alertas.Purpose、tbl_alertas.Status、tbl_alertas.OpenDate、tbl_alertas.CloseDate、tbl_alertas.Owner、tbl_alertas.ValueStream、tbl_alertas.Family
来自tbl_usuarios
tbl_usuarios.Nombre=tbl_alertas.Owner上的内部连接tbl_alertas
其中(状态='On approve'或状态='Active')和日期(CloseDate)
您需要了解。您的查询以
状态='approve'或(状态='active'和closedat
的形式执行-请注意括号以添加Marc B所说的内容;通常认为“强制”优先权是一种很好的做法,即使在不需要的情况下,也可以让意图变得清晰。谢谢,我知道这是关于()的事情,哈哈
WHERE (STATUS = 'On approve' OR STATUS = 'Active') AND CloseDate < CURDATE() 
WHERE STATUS IN ('On approve', 'Active') AND CloseDate < CURDATE() 
SELECT tbl_usuarios.Correo, tbl_alertas.Id, tbl_alertas.Purpose, tbl_alertas.Status, tbl_alertas.OpenDate, tbl_alertas.CloseDate, tbl_alertas.Owner, tbl_alertas.ValueStream, tbl_alertas.Family
FROM tbl_usuarios 
INNER JOIN tbl_alertas ON tbl_usuarios.Nombre = tbl_alertas.Owner
WHERE (STATUS = 'On approve' OR STATUS = 'Active') AND DATE(CloseDate) < CURDATE()