如何解决Mysql 查询 - 返回两个日期范围相交的日期
我正在尝试编写一个 MysqL 查询,其中两个日期范围相交。
例如,我想从存在给定日期的表中返回一行。
所以我的用户可以选择两个日期“开始日期”、“结束日期”
id,fromdate,tildate
id:1,fromdate:'2021-01-03',tildate:'2021-01-05'
id:2,fromdate:'2021-01-05',tildate:'2021-01-08'
startdate: '2021-01-01',enddate '2021-01-02' - Should return nothing
startdate: '2021-01-03',enddate '2021-01-04' - Should return 1,since there is an intersection
startdate: '2021-01-02',enddate '2021-01-06' - Should return id 1 and 2,since there is an intersection in both
startdate: '2021-01-05',enddate '2021-01-05' - Should return id 1 and 2,since there is an intersection in both
startdate: '2021-01-07',enddate '2021-01-08' - Should return 2,since there is an intersection
我试过这个查询
SELECT
id,todate FROM table_name
WHERE
('2021-01-02' >= fromDate
AND '2021-01-02' <= toDate)
OR
('2021-01-06' >= fromDate
AND '2021-01-06' <= toDate)
这不起作用。
希望这是有道理的
解决方法
试试这个:
SELECT *
FROM table_name
WHERE
('2021-01-02' >= fromDate
AND '2021-01-02' <= toDate)
OR
('2021-01-06' >= fromDate
AND '2021-01-06' <= toDate)
您在查询中到处都使用了 fromDate
,这可能是问题所在
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。