StartDate = 01/01/2013
EndDate = 12/31/2019
我需要获取'2013-14' , '2014-15' , 2015-16
之类的年份列,依此类推。
例如,2013 - 14年应包含2013年6月至2014年5月的日期详情。同样明智的我需要将年份提升至结束日期。请帮帮我。
concat(datepart(YY,StartDate),' - ',RIGHT(YEAR(StartDate),2)+ 1)
我使用了上面的格式。我可以得到2013-14的输出。但我需要指定分裂年份的月份范围。
此致 Vanmathi
答案 0 :(得分:0)
使用FORMAT
功能:
SELECT
FORMAT(StartDate, 'yyyy-MM'),
FORMAT(EndDate, 'yyyy-MM')
阅读official MSDN documentation page上FORMAT
函数的全部内容。
答案 1 :(得分: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)
答案 2 :(得分:0)
您可以使用以下选择语句 -
select FORMAT(StartDate , 'yyyy') + '-' + FORMAT(EndDate , 'yyyy')