我需要找到日期间隔之间的交叉,例如
我有一个日期
2015-01-01 and 2015-03-01
和第二个值
2015-01-01 and 2015-01-15
我想得到结果15
。那么第一个日期范围中包含多少天的第二个日期?
有任何想法如何使用MySql?
答案 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;
您可以指定自己的其他条件和日期范围。