首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server日期范围,每月或每季度

问Server日期范围,每月或每季度
EN

Stack Overflow用户
提问于 2014-02-16 16:46:02
回答 1查看 252关注 0票数 0

我在Server表中有一个日期列表,需要找出有关它们的几个单独的主题:

第一,日期是每月还是每季?日期总是从一个月的第一天开始。

例如,一个序列可能是01/01/13, 01/02/13, 01/03/13, 01/04/13, 01/05/13,因此是每月的(英国)

例如,另一个序列可能是01/12/12, 01/03/13, 01/06/13, 01/09/13, 01/12/13,因此是季刊(英国)

第二,第一个可以解决的问题,所有的日期都有吗?没有空隙。我解决这个问题的一种方法是说,要么是每月/每季度,要么是不知道,但那是在C#。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-16 17:10:08

您可以使用DATEDIFF()函数来比较两个日期,还可以使用一个自连接函数和ROW_NUMBER()函数来比较来自不同行的日期:

代码语言:javascript
复制
;WITH cte AS (SELECT *, ROW_NUMBER() OVER (ORDER BY dt) RN
              FROM Table1)
SELECT DATEDIFF(day,a.dt,b.dt)
FROM cte a
JOIN cte b
 ON a.RN = b.RN-1

如果使用的是SQL 2012,则可以使用LEAD()函数比较来自不同行的值:

代码语言:javascript
复制
SELECT  DATEDIFF(day,dt,LEAD(dt,1) OVER(ORDER BY dt)) AS Days
       ,DATEDIFF(quarter,dt,LEAD(dt,1) OVER(ORDER BY dt)) AS Quarters
FROM Table2

演示:SQL Fiddle

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21814223

复制
相关文章

相似问题

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