表格
pmComm validFrom validTo 6.00 2011-11-01 2012-01-24 6.00 2012-01-09 2013-06-30 9.00 2012-01-25 2012-03-31 8.00 2012-04-01 2012-08-31 5.00 2013-07-01 2013-09-30 7.50 2013-10-01 2013-12-31 15.00 2014-01-01 2035-12-31
我有一张桌子,当我在'2013-12-15'到2031-05-15之间搜索数据时,我想要这样的结果:
结果:
pmComm validFrom validTo 7.50 2013-12-15 2013-12-31 15.00 2014-01-01 2031-05-15
什么应该是SQL查询来获取范围数据之间的期望结果?
答案 0 :(得分:1)
你必须在我相信的条件之间使用,你可以在这里找到更多。 http://www.techonthenet.com/sql/between.php
查询可能看起来像这样
SELECT pmComm, validFrom, validTo
FROM YOUR_TABLE
WHERE (validFrom BETWEEN '2013-12-15' AND '2031-05-15') AND (validTo BETWEEN '2013-12-15' AND '2031-05-15');
答案 1 :(得分:1)
当validFrom
不在validFrom
范围内时,以下内容会将较低的日期范围限制输出为validTo
。
同样,当validTo
在范围内但validFrom
不在范围内时,它会将上限日期范围限制为validTo
。
SELECT
pmComm,
CASE
WHEN validFrom < '2013-12-15' THEN '2013-12-15'
ELSE validFrom
END AS validFrom,
CASE
WHEN validTo > '2031-05-15' THEN '2031-05-15'
ELSE validTo
END AS validTo
FROM Table
WHERE (validfrom BETWEEN '2013-12-15' AND '2031-05-15'
OR validto BETWEEN '2013-12-15' AND '2031-05-15')
答案 2 :(得分:0)
我不完全确定你想要达到的目标,但是
SELECT * FROM table WHERE validFrom >= '2013-12-15' AND validTo <= '2031-05-15'
可能会完成这项工作。
答案 3 :(得分:0)
SELECT *
FROM Table
WHERE validTo BETWEEN '2013-12-15' AND '2031-05-15'