如何使用sql获取会计年度中的所有月份最后一个日期

时间:2014-09-09 06:14:51

标签: sql date

我将输入指定为'jun - may'

检查当前年份和月份:

  1. 如果当前月份是9月9日,而当前年份是2014年,则会计年度设置为June 2014 - May 2015
  2. 如果当前月份为1月(1)且当前年份为2014年,则会计年度设置为Jun 2013 - May 2014
  3. 我需要找到会计年度内每个月的最后日期。

    我找到了获取一个月的最后日期的解决方案,但不知道如何扩展它以查找范围内的所有月份,具体取决于逻辑。

    到目前为止我的尝试:

    DECLARE @Month int
    DECLARE @Year int
    
    set @Month = 2
    set @Year = 2004
    
    select DATEADD(day,-1,DATEADD(month,@Month,DATEADD(year,@Year-1900,0))) 
    

1 个答案:

答案 0 :(得分:1)

你能试试吗

DECLARE @Month int =5
DECLARE @Year int = 2004
declare @i int = 0
if @Month between 1 and 5  set @i = 1 else set @i = 0
create table #temp(Monthend datetime)

set @Month = 6
while(@month<=12)
begin
insert into #temp
select DATEADD(day,-1,DATEADD(month,@Month,DATEADD(year,@Year-@i-1900,0)))  
set @month = @month+1
end

set @Month = 1
while(@month<6)
begin
insert into #temp
select DATEADD(day,-1,DATEADD(month,@Month,DATEADD(year,@Year-@i-1899,0)))  
set @month = @month+1
end

Select * from #temp
Drop table #temp