会计年度开始于7月1日至6月30日,我需要计算并显示两个日期之间的会计年度数。
例如:01/01 / 2018-12 / 31/2018。结果(YYYY-YYYY)应该为2个会计年度:
很容易计算两个日期之间是否只有2个会计年度,但是使用create or replace function check_stuff()
returns trigger as
$$
declare
original record;
...
begin
original := new;
...
if NEW.name ... then
raise warning 'weird name detected';
end if
if NEW.address ... then
raise warning 'weird address detected';
end if
...
return original;
exception
when whatever then
raise notice '% % % : % %', TG_NAME, TG_WHEN, TG_OP, SQLERRM, SQLSTATE;
return original;
end;
$$
language plpgsql
create trigger check_stuff_trigger
after insert or update on important_table
for each row execute procedure check_stuff();
或
=IF(StartDate<DATE(YEAR(StartDate), 7,1),CONCATENATE(YEAR(StartDate)-1, "-", YEAR(StartDate)), CONCATENATE(YEAR(StartDate), "-", YEAR(StartDate)+1))
但是,如果有两个以上的会计年度,我该如何捕获?例如:01/01/2018-09/20/2019
我希望将会计年度输入表格范围,如果会计年度超过2个,则自动插入新行。我正在寻找公式或VBA解决方案。
答案 0 :(得分:1)
我上次要做的是针对特定报告,其中日期写在单元格中:
dim s as long, e as long
if month(cells(1,1).value) >= 7 AND day(cells(1,1).value) >= 1 Then
s = year(cells(1,1).value)+1
else
s = year(cells(1,1).value)
end if
if month(cells(2,1).value) >= 7 AND day(cells(1,1).value) >= 1 Then
e = year(cells(1,1).value)+1
else
e = year(cells(1,1).value)
end if
'FY range:
cells(3,1).value = "FY" & s & "-FY" & e
为您重新编码,未经测试