35 lines
1.4 KiB
Transact-SQL
35 lines
1.4 KiB
Transact-SQL
-- @NumTrim = 0 (Corrente)
|
|
-- @NumTrim = 1 (Precedente)
|
|
-- @NumTrim = 2 (Precedente - 1)
|
|
-- @WhichDate = 0 (Inizio Trimestre)
|
|
-- @WhichDate = 1 (Fine Trimestre (prec.))
|
|
-- @DataFineGenerazione = 0 (Data Fine del Trim (prec.))
|
|
-- @DataFineGenerazione = 1 (Data Fine generazione del Trimestre indicato da @NumTrim, ha senso solo quando @WhichDate = 1)
|
|
-- select [C6MartPeriodico].[getDateTrimestre] (0, 1, 0)
|
|
CREATE function [C6MartPeriodico].[getDateTrimestre](
|
|
@NumTrim int,
|
|
@WhichDate bit,
|
|
@DataFineGenerazione bit
|
|
)
|
|
returns varchar(8)
|
|
as
|
|
begin
|
|
declare @data datetime
|
|
declare @retData varchar(8)
|
|
-- set @NumTrim = 2
|
|
-- set @WhichDate = 0
|
|
-- set @DataFineGenerazione = 1
|
|
if @WhichDate = 0 --(Inizio)
|
|
-- Data Inizio
|
|
set @data = dateadd(d, 1, dateadd(m, -@NumTrim * 3, C6MartPeriodico.getTrimestre(getdate(),0)))
|
|
else
|
|
if @DataFineGenerazione = 0
|
|
-- Data Fine Trimestre
|
|
set @data = dateadd(m, -@NumTrim * 3, C6MartPeriodico.getTrimestre(getdate(),0))
|
|
else
|
|
-- Data Fine Generazione del Trimestre indicato dal parametri @NumTrim
|
|
--set @data = dateadd(m, 1, dateadd(m, -@NumTrim * 3, C6MartPeriodico.getTrimestre(getdate(),0)))
|
|
set @data = dateadd(d, -1, dateadd(m, 1, dateadd(d, 1, dateadd(m, -@NumTrim * 3, C6MartPeriodico.getTrimestre(getdate(),0)))))
|
|
set @retData = convert(varchar(4), year(@data)) + right('0' + convert(varchar(2), month(@data)), 2) + right('0' + convert(varchar(2), day(@data)), 2)
|
|
return @retData
|
|
end |