CREATE FUNCTION [C6MartPeriodico].[getTrimestre2_Sim] ( @data datetime, @primo bit ) RETURNS VARCHAR(8) AS BEGIN -- Declare the return variable here DECLARE @retData VARCHAR(8) --PER SIMULAZIONE (Commentare x Trimestrale)------------ declare @DtAnno varchar(4) = convert(varchar(4), @data, 112) declare @DtAnnoPrec varchar(4) = convert(varchar(4), dateAdd(YYYY, -1, @data), 112) IF @primo = 0 begin if @data < @DtAnno + '0301' -- 0101 - 0228 set @retdata= @DtAnnoPrec + '1130' else if @data < @DtAnno + '0601' -- 0301 - 0531 set @retdata= DateAdd(dd, -1, @DtAnno + '0301') else if @data < @DtAnno + '0901' -- 0601 - 0831 set @retdata= @DtAnno + '0531' else if @data < @DtAnno + '1201' -- 0901 - 1130 set @retdata= @DtAnno + '0831' else -- 1201 - 1231 set @retdata= @DtAnno + '1130' end ELSE begin if @data < @DtAnno + '0301' -- 0101 - 0228 set @retdata= @DtAnnoPrec + '1201' else if @data < @DtAnno + '0601' -- 0301 - 0531 set @retdata= @DtAnno + '0301' else if @data < @DtAnno + '0901' -- 0601 - 0831 set @retdata= @DtAnno + '0601' else if @data < @DtAnno + '1201' -- 0901 - 1130 set @retdata= @DtAnno + '0901' else -- 1201 - 1231 set @retdata= @DtAnno + '1201' end RETURN @retData END