嗨,请告诉我如何从2016-04-01到2017-03-31从sql server.my财政年度开始提取财政年度的最后一天
答案 0 :(得分:1)
您最近可以使用的是月末,因为您需要在该月提供一个日期,如下所示:
{{1}}
答案 1 :(得分:0)
要获得任何日期的财政年度的最后一天,您需要在3月之前找到行军的最后一天,或者如果在3月之后,则需要在明年3月的最后一天找到:
declare @yourdate datetime = getdate();
select case when month(@yourdate) < 4 then CONVERT(datetime,cast(YEAR(@yourdate) as char(4)) + '-03-31' ,120)
else CONVERT(datetime,cast(YEAR(@yourdate) + 1 as char(4)) + '-03-31' ,120)
end as financial_year_end
答案 2 :(得分:0)
编辑: 如果你想要基于from_date派生的最后日期,那么使用类似这样的东西
的 Rextester Demo
强>
select
case when datepart(mm,from_date) <=3 then
cast(concat(year(from_date),'-03-31') as datetime)
else
dateadd(year,1,cast(concat(year(from_date),'-03-31') as datetime))
end as last_date_fin
from
(select '2017-04-30' as from_date union all
select '2017-01-13') t;
这种from_date
- Jan
之间的Mar
同义词31st march
。否则它将给出明年的31st March
。
上一个回答:
http://rextester.com/AXVM26769
如果您希望在同一年的最后一天过去,请使用
select cast(concat(given_year,'-03-31') as datetime)
from
(select '2017' as given_year) t
如果您想通过2016年,然后获取2017-03-31
,请使用。您可以在派生表中更改年份并根据该值更改输出。
select dateadd(year,1,cast(concat(given_year,'-03-31') as datetime))
from
(select '2016' as given_year) t;
答案 3 :(得分:0)
此代码将用于查找财政年度的最后日期。 对于上一年的案例匹配和“ THEN”部分将执行,而对于当年的“ ELSE” 部分将执行。
select CASE WHEN (MONTH(GETDATE())) <= 3
THEN convert(varchar(4), YEAR(GETDATE())-1) + '-' + '03-31'
ELSE convert(varchar(4),YEAR(GETDATE()))+ '-' + '03-31'
end
答案 4 :(得分:0)
> LastDayOfYearFY] =
> eomonth( dateadd(month, 5,
> dateadd(year, datepart(year, (dateadd(month, 6, [date])) ) -1900, 0)))
答案 5 :(得分:-1)
您可以选择所有日期对其后代进行排序并选择第一个日期。
SELECT date
FROM table
ORDER BY date desc
LIMIT 1;