MySQL查询-不在两个日期之间

MySQL查询-不在两个日期之间,mysql,Mysql,我正在尝试运行一个查询,选择两个月未登录的所有用户(last\u access),insert\u date不在今天的两个月内,状态不为2 last\u access和insert\u date都是datetime 这是我的密码 SELECT * FROM `wp_SDzEBA_pc_users` WHERE `last_access` NOT BETWEEN NOW() - INTERVAL 2 MONTH AND NOW() AND `insert_date` NOT BETWEEN NO

我正在尝试运行一个查询,选择两个月未登录的所有用户(
last\u access
),
insert\u date
不在今天的两个月内,
状态不为2

last\u access
insert\u date
都是
datetime

这是我的密码

SELECT * 
FROM `wp_SDzEBA_pc_users`
WHERE `last_access` NOT BETWEEN NOW() - INTERVAL 2 MONTH AND NOW()
AND `insert_date` NOT BETWEEN NOW() - INTERVAL 2 MONTH AND NOW()
AND `status` <> 2
选择*
来自“wp_SDzEBA_pc_用户”`
其中'last_access'不在现在()之间-间隔2个月到现在()
和“插入日期”不在现在()之间-间隔2个月到现在()之间
和“地位”2
但它似乎仍然选择在两个月内登录的用户


我做错了什么?

我不会为此使用
between
。一个不等式条件似乎更合适:

SELECT * 
FROM `wp_SDzEBA_pc_users`
WHERE 
    `last_access` < NOW() - INTERVAL 2 MONTH
    AND `insert_date` < NOW() - INTERVAL 2 MONTH
    AND `status` <> 2

你的代码应该可以工作。请以表格文本形式提供示例数据、当前结果和所需结果。它在查询中返回的示例日期为
2020-10-17 10:51:00
-也许我需要立即()执行+1天,因为服务器日期之间可能存在差异@GMBI think
NOW()+INTERVAL 1天
实际上解决了这个问题
SELECT * 
FROM `wp_SDzEBA_pc_users`
WHERE 
    (`last_access` IS NULL OR `last_access` < NOW() - INTERVAL 2 MONTH)
    AND `insert_date` < NOW() - INTERVAL 2 MONTH
    AND `status` <> 2