由于一些奇怪的原因,如果我在查询中使用“中间”,它不会返回任何结果。(为了方便调试,我简化了这个查询,但即使在这种更简单的状态下,我也看到了问题)
此查询不返回结果:
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的记录。
下面给出一个结果。只有在联接中有问题:
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数据库上运行这个查询,它会给出一个结果。如果我在本地运行它,它就不会运行。好奇怪啊。是否有某种mysql设置会导致这种情况?
发布于 2019-01-24 00:38:20
试试这个:
SELECT data_date from
(select '2019-01-02 10:00:00' data_date union ALL
select '2019-01-28 10:00:00') d
where DATE_FORMAT(date(data_date),'%Y-%m-%d %r') BETWEEN DATE_FORMAT(date('2019-01-01 00:00:00'),'%Y-%m-%d %r') AND DATE_FORMAT(date('2019-01-07 00:00:00'),'%Y-%m-%d %r');或
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 DATE_FORMAT(date(u.reporting_week),'%Y-%m-%d %r') BETWEEN DATE_FORMAT(date('2019-01-01 00:00:00'),'%Y-%m-%d %r') AND DATE_FORMAT(date('2019-01-07 00:00:00'),'%Y-%m-%d %r');https://stackoverflow.com/questions/54337620
复制相似问题