2016-01-05 62 views
-6
StartDate = 01/01/2013 
EndDate = 12/31/2019 

我需要获取年份列,如'2013-14' , '2014-15' , 2015-16等。SQL Server 2012中的年计算

例如,2013-14年应该包含2013年6月至2014年5月的日期详细信息。与明智的我需要得到的一年到结束日期。请帮助我。

的concat(日期部分(YY,起始日期), ' - ',RIGHT(YEAR(起始日期),2)+ 1)

我使用上述格式。我可以得到2013-14的输出。但我需要指定分裂年份的月份范围。

问候, Vanmathi

回答

0

使用用户定义函数来分好了日期,然后文本串联。

CREATE FUNCTION GetSlicedYear(@TheDate date) 
RETURNS varchar(7) 
AS 
BEGIN 
    DECLARE @SlicedYear varchar(7) 
    IF DATEPART(month, @TheDate) < 6 
     SELECT @SlicedYear = (DATEPART(year, @TheDate) -1) +"-"+ RIGHT(CAST(YEAR(@TheDate) As varchar(4)),2) 
    ELSE 
     SELECT @SlicedYear = DATEPART(year, @TheDate) +"-"+ RIGHT(CAST((YEAR(@TheDate) +1) As varchar(4)),2) 
    RETURN @SlicedYear 
END 

然后像这样的命令(或组)。

SELECT SomeField, GetSlicedYear(SomeDate) FROM SomeTable ORDER BY GetSlicedYear(SomeDate) 
0

您可以使用下面的select语句 -

select FORMAT(StartDate , 'yyyy') + '-' + FORMAT(EndDate , 'yyyy')