获取两个日期列之间的数据


get data between two date columns

表:

pm通信有效从有效到6.00        2011-11-01  2012-01-246.00        2012-01-09  2013-06-309.00        2012-01-25  2012-03-318.00        2012-04-01  2012-08-315.00        2013-07-01  2013-09-307.50        2013-10-01  2013-12-3115.00       2014-01-01  2035-12-31

我有一个表,当我在"2013-12-15"到 2031-05-15 之间搜索数据时,我想要这样的结果:

结果:

pm通信有效从有效到7.50        2013-12-15  2013-12-3115.00       2014-01-01  2031-05-15

应该用什么SQL查询来获得范围数据之间的期望结果?

validFrom不在范围内但validTo不在范围内时,以下内容将输出日期范围下限validFrom

同样,当validFrom在该范围内但validTo不在范围内时,它将输出日期范围上限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')

我相信你必须在条件之间使用,你可以在这里找到更多。 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');
我不

完全确定您要实现的目标,但是

SELECT * FROM table WHERE validFrom >= '2013-12-15' AND validTo <= '2031-05-15'

可能会完成这项工作。

SELECT *
FROM Table
WHERE validTo BETWEEN '2013-12-15' AND '2031-05-15'