我想根据印度财政年度得到一个序列号。我尝试使用 SQL 内置函数编写一个函数:
DATEPART(DAYOFYEAR,'2015-04-01')
但我面临着在整个财政年度获得天数的挑战。
对于 2015 财政年度:第一天是“2015-04-01”,最后一天是“2016-03-31”。
注意:对于这个时期,我的财政年度 2015 是闰年,应该有 366 天。
Dan*_*her 10
一年中从 4 月 1 日开始的一天的序号可以这样计算:
SELECT 1+
DATEDIFF(day,
DATEFROMPARTS(
DATEPART(year, DATEADD(month, -3, [Date])),
4,
1),
[Date]) AS FYdayNumber
FROM tableWithDates;
Run Code Online (Sandbox Code Playgroud)
本质上,我们从当前日期减去三个月,然后使用该年份创建一个年初日期(year , april, 1 ),然后计算该年初日期和日期之间的天数当前日期。最后,加 1 以使序列从 1 开始。
如果您只想要会计年度的第一天,您可以使用
SELECT DATEFROMPARTS(
DATEPART(year, DATEADD(month, -3, [Date])),
4,
1) AS firstDayOfFY
FROM tableWithDates;
Run Code Online (Sandbox Code Playgroud)
正如@MarkSinkinson 在另一个答案中指出的那样,出于性能和并行化的原因,避免(用户定义的)标量函数。
| 归档时间: |
|
| 查看次数: |
1112 次 |
| 最近记录: |