如何在Sql server中获取日期的序列号

时间:2016-12-22 15:10:46

标签: sql sql-server tsql

如何获取月份值序列号

[Date]     RN
2016-01-01 1
2016-02-01 2
2016-03-01 3
2016-12-01 12
2016-05-01 5
2016-06-01 6
2016-07-01 7
2016-08-01 8
2016-09-01 9
2016-10-01 10
2016-11-01 11
2016-04-01 4
2016-04-01 4
2016-04-01 4

我如何使用Row_number和Rank()

尝试这个
required output 

[Date]     RN
2016-01-01 1
2016-02-01 2
2016-03-01 3
2016-04-01 4
2016-04-01 4
2016-04-01 4
2016-05-01 5
2016-06-01 6
2016-07-01 7
2016-08-01 8
2016-09-01 9
2016-10-01 10
2016-11-01 11
2016-12-01 12

2 个答案:

答案 0 :(得分:1)

使用DENSE_RANK代替ROW_NUMBER。当存在重复

时,RANK将跳过序列
Select [Date],DENSE_RANK() OVER(Order by [Date]) as RN
From yourtable

答案 1 :(得分:0)

我认为你应该尝试使用datepart函数。

SELECT DATEPART(MONTH, GETUTCDATE())

MSDN:https://msdn.microsoft.com/en-us/library/ms174420.aspx