【发布时间】:2021-10-17 21:31:09
【问题描述】:
我有一张表,比如说 road_trip,其中包含 startDate 和 endDate 列。
我想做一个查询,可以搜索一个月或多个月(将是一个数组)是否位于 startDate 和 endDate 之间。
例如,如果 startDate = "2020-05-21" 和 endDate = "2025-05-22" 对于给定的月份 = 5(对应于五月),我们应该有一些结果。
但是对于这个例子:startDate = "2020-06-21" and endDate = "2020-07-22" 对于给定的月份 = 5(对应于五月),我们不应该有任何结果,因为月份不在日期之间。
我不知道如何编写高效的查询。
我从本机函数 MONTH 开始,但它不能正常工作,因为我需要检查年份,例如 startDate 的年份是 2020 年,而 endDate 的年份是 2025 年。月份将自动在它们之间但如果年份相同,则可能不在日期之间。
谢谢大家
【问题讨论】:
-
用 AND 制作月份(你的日期)和年份(你的日期)
-
我无法确定我的日期,因为它不是一个日期,它只是一个月,可能是 5(5 月)或 11(11 月)。给定一个月,我想知道这个月是否介于存储在我的表中的 2 个日期之间
-
从 year(curdate()) 中提取年份并将其添加到您的日期,即您的日期 + 当前年份