两个日期间隔相交

时间:2015-07-08 07:29:32

标签: mysql

我需要找到日期间隔之间的交叉,例如

我有一个日期

2015-01-01 and 2015-03-01

和第二个值

2015-01-01 and 2015-01-15

我想得到结果15。那么第一个日期范围中包含多少天的第二个日期? 有任何想法如何使用MySql?

2 个答案:

答案 0 :(得分:1)

在MySQL中,您可以使用以下SQL语句来获取所需内容:

SELECT DATEDIFF(LEAST('2015-03-01 23:59:59','2015-01-15 23:59:59'),GREATEST('2015-01-01 00:00:00','2015-01-01 00:00:00'))+1 AS days;
+------+
| days |
+------+
|   15 |
+------+

这将使用DATEDIFF

获取日期差异

答案 1 :(得分:0)

您可以将CASE用于以下条件:

SELECT (CASE
            WHEN '2015-01-01'>= '2015-01-01' AND '2015-04-15'<='2015-03-01'
            THEN DATEDIFF('2015-01-15','2015-01-01')+1
            ELSE 'out of range'
        END) AS days;

您可以指定自己的其他条件和日期范围。