【发布时间】:2019-01-24 00:16:31
【问题描述】:
出于某种奇怪的原因,如果我在查询中使用 BETWEEN,它不会返回任何结果。 (仅供参考,我简化了这个查询以便于调试,但即使在这种更简单的状态下我也看到了问题)
此查询不返回结果:
SELECT
u.agent_number,
u.reporting_week
FROM table1 e
JOIN (
SELECT
b.agent_number,
b.reporting_week
FROM table2 b
GROUP BY b.agent_number
) u ON u.agent_number = e.agent_number
WHERE u.reporting_week BETWEEN '2019-01-01 00:00:00' AND '2019-01-07 00:00:00';
但是这个查询确实返回了>和<的结果:
SELECT
u.agent_number,
u.reporting_week
FROM table1 e
JOIN (
SELECT
b.agent_number,
b.reporting_week
FROM table2 b
GROUP BY b.agent_number
) u ON u.agent_number = e.agent_number
WHERE u.reporting_week > '2019-01-01 00:00:00' AND u.reporting_week < '2019-01-07 00:00:00';
我有一个日期为2019-01-02 10:00:00的记录。
仅供参考,以下确实给出了结果。只有在 JOIN 中才有问题:
SELECT
b.agent_number,
b.reporting_week
FROM table2 b
WHERE b.reporting_week BETWEEN '2019-01-01 00:00:00' AND '2019-01-23 00:00:00';
编辑
我发现的另一件奇怪的事情是,如果我在肝脏 mysql 数据库上使用 BETWEEN 运行查询,它会给出结果。如果我在本地运行它,它不会。太奇怪了。是否有某种 mysql 设置会导致这种情况?
【问题讨论】: