set noexec off
go
if object_id('GetPeriods_For_RevenueComparationDaily') is not null
begin
set noexec on
end
go
-- создаем пустой объект
-- необходимо указать название процедуры
create procedure dbo.GetPeriods_For_RevenueComparationDaily as
raiserror ('Объект пустой. Ошибка при создаении объекта', -- Message text.
16, -- Severity.
1 -- State.
);
go
set noexec off
go
alter procedure dbo.GetPeriods_For_RevenueComparationDaily
(
@Date1 DateTime,
@Date2 DateTime
)
as
begin
--declare @Date1 DateTime
--declare @Date2 DateTime
--set @Date1 = '20190527'
--set @Date2 = '20190526'
declare @ActualPeriodDateFrom DateTime
declare @ActualPeriodDateTo DateTime
declare @LastPeriodDateFrom DateTime
declare @LastPeriodDateTo DateTime
declare @CurrentDate DateTime
declare @CurrentDateTime DateTime
declare @msOffset int
if (@Date1 > @Date2)
begin
set @ActualPeriodDateFrom = cast(@Date1 as Date)
set @LastPeriodDateFrom = cast(@Date2 as Date)
end
else
begin
set @ActualPeriodDateFrom = cast(@Date2 as Date)
set @LastPeriodDateFrom = cast(@Date1 as Date)
end
set @CurrentDateTime = GetDate()
set @CurrentDate = cast(@CurrentDateTime as Date)
if (@ActualPeriodDateFrom = @CurrentDate)
begin
set @msOffset = datediff(ms, @CurrentDate, @CurrentDateTime)
set @ActualPeriodDateTo = dateadd(ms, @msOffset, @ActualPeriodDateFrom)
set @LastPeriodDateTo = dateadd(ms, @msOffset, @LastPeriodDateFrom)
end
else
begin
set @ActualPeriodDateTo = dateadd(ms, -2, dateadd(day, 1, @ActualPeriodDateFrom))
set @LastPeriodDateTo = dateadd(ms, -2, dateadd(day, 1, @LastPeriodDateFrom))
end
select
@ActualPeriodDateFrom as ActualPeriodDateFrom,
@ActualPeriodDateTo as ActualPeriodDateTo,
@LastPeriodDateFrom as LastPeriodDateFrom,
@LastPeriodDateTo as LastPeriodDateTo
end