41 lines
1.2 KiB
Transact-SQL
41 lines
1.2 KiB
Transact-SQL
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 |