首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL日期范围查询

问SQL日期范围查询
EN

Stack Overflow用户
提问于 2013-08-01 21:57:49
回答 1查看 189关注 0票数 1

我正在处理一个日期范围由两个字段(开始和结束)绑定的表:

代码语言:javascript
复制
ID  |  START      |  END
1      2010-01-01    2010-07-01
2      2011-01-01    2011-07-01
3      2012-01-01    2013-07-01
4      2013-01-01    2013-07-01
5      2009-01-01    2013-07-01

通过这样的查询,我可以得到由所有范围表示的“月”数的粗略估计:

代码语言:javascript
复制
SELECT SUM(DATEDIFF(dy, Start, End) / 30) as Total_Months
FROM TABLE

我想要做的是询问在给定的时间内,有多少个月(或几天)是由所有范围表示的。

因此,如果我在上面的示例中询问从时间段[2013-01-01 - 2013-07-01]中表示多少个月,它会说是18 (6来自第3、4和5行中的每一行)。

实现这一目标的最佳方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2013-08-01 22:10:08

像这样吗?

代码语言:javascript
复制
SELECT SUM(DATEDIFF(dy, Start, End) / 30) as Total_Months
WHERE Start >= '2013-01-01' AND End <= '2013-07-01'
FROM TABLE

或使其参数化:

代码语言:javascript
复制
SELECT SUM(DATEDIFF(dy, Start, End) / 30) as Total_Months
WHERE Start >= @startDate AND End <= @endDate
FROM TABLE
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18005369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档