Apologies for such a basic question but I'm right at the bottom of the learnuing curve...
If I creat a user function to return a varchar representing thre financial year (eg. "2006/2007") from a passed in parameter (date column from a record) how can I debug to find where the function is failing. The particular function equivalent is fine in VB but does not work in SQL. copy of code attached for amusement!
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
ALTER function FiscalYear(@Indate as datetime)
Returns varchar
as
begin
declare @YearNo as integer, @MonthNo as integer, @Year1 as integer, @Year2 as integer, @FiscalYear as varchar
begin
set @YearNo = Year(@Indate)
set @MonthNo = Month(@Indate)
if @MonthNo <= '3'
begin set @Year1 = @YearNo - '1'
end
else begin set @Year1 = @YearNo
end
set @Year2 = @Year1 + '1'
set @FiscalYear = LTrim(Str(@Year1)) + '/' + LTrim(Str(@Year2))
end
return (@FiscalYear)
end
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
result returns "2" for curent date (07 sept 2006)
Ta in advance, Alex
If I creat a user function to return a varchar representing thre financial year (eg. "2006/2007") from a passed in parameter (date column from a record) how can I debug to find where the function is failing. The particular function equivalent is fine in VB but does not work in SQL. copy of code attached for amusement!
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
ALTER function FiscalYear(@Indate as datetime)
Returns varchar
as
begin
declare @YearNo as integer, @MonthNo as integer, @Year1 as integer, @Year2 as integer, @FiscalYear as varchar
begin
set @YearNo = Year(@Indate)
set @MonthNo = Month(@Indate)
if @MonthNo <= '3'
begin set @Year1 = @YearNo - '1'
end
else begin set @Year1 = @YearNo
end
set @Year2 = @Year1 + '1'
set @FiscalYear = LTrim(Str(@Year1)) + '/' + LTrim(Str(@Year2))
end
return (@FiscalYear)
end
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
result returns "2" for curent date (07 sept 2006)
Ta in advance, Alex