我有一个数据库,其中包含我关注的两个日期。
开始日期 + 结束日期
这些日期以下列格式存储:
2008-06-23 00:00:00.000
我需要添加一条动态 SQL 以仅返回属于当前财政年度的日期。
例如 01/04/2011 - 31/03/2012 就是这个财政年度。
因此,任何结束日期在这些日期内或为 NULL 的记录都被归类为“事件”
年份部分需要是动态的,这样一到 2012 年 4 月 1 日,我们就会进入新的财政年度,并将从 2012 年 1 月 4 日到 2013 年 3 月 31 日等返回数据。
可以建议一些代码或指出我忽略的任何规则吗?
最佳答案
尝试:
...
where StartDate >=
case
when month(getdate()) > 3
then convert(datetime, cast(year(getdate()) as varchar) + '-4-1')
else
convert(datetime, cast(year(getdate()) - 1 as varchar) + '-4-1')
end
and (EndDate is null or EndDate <
case
when month(getdate()) > 3
then convert(datetime, cast(year(getdate()) + 1 as varchar) + '-4-1')
else
convert(datetime, cast(year(getdate()) as varchar) + '-4-1')
end)
关于sql - 仅针对当前财政年度日期的动态 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9065501/