给定一个包含 from_date 日期和 to_date 日期列的表,我想选择其中年份(例如 2007 年)是其中一个日期或两个日期或位于两个日期之间的年份的所有数据集。
如何使用 mySQL 实现此目的?
表:
create Table Articleprice
(`ArtikelpreisNR` int, `ArtikelNR` int, `from_Date` date, `to_date` date, `price` int);
测试数据示例
insert into Articleprice
(`ArtikelPreisNR`, `ArtikelNR`,`from_Date`, `to_Date` ,`price`)
values (1, 1, '2006-7-04', '2008-7-04', 10);
SQL: 当 from_date 和 to_date = 2007 时,这仅返回那些
SELECT
MIN(price)
FROM Articleprice
WHERE Articleprice.from_Date >= '2007/01/01' and Articleprice.to_Date <= '2007/12/31';
我需要做什么才能解决我的案件?
最佳答案
首先,您使用年份构建完整的日期。对于 2007 年,日期将为 2007-01-01
和 2007-12-31
(假设包含结束日期)。
接下来你使用overlapping dates query查找 (i) 结束于 (ii) 开始于 (iii) 包含或 (iv) 包含在 2007 年之内的所有行。查询很简单:
SELECT * FROM Articleprice
WHERE '2007-12-31' >= from_Date AND to_date > '2007-01-01'
关于mysql - 用于选择年份在两个日期之间的行的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28927400/