CalendarQuarterDateRange
CREATE PROCEDURE [dbo].[
AS
begin
declare
@today date
, @todayquarter int
, @reportyear int
, @reportquarter int
, @quarterbegindate datetime
, @quarterenddate datetime;
set @today = getdate();
set @todayquarter = datepart(quarter, @today);
--
-- figure out the reportyear and reportquarter
--
if @todayquarter = 1
begin
set @reportyear = datepart(year, @today) - 1;
set @reportquarter = 4;
end
else
begin
set @reportyear = datepart(year, @today);
set @reportquarter = @todayquarter - 1;
end
--
-- figure out the begin and end date for the reportquarter
--
if @reportquarter = 1
begin
set @quarterbegindate = datefromparts(@reportyear, 1, 1);
set @quarterenddate = datefromparts(@reportyear, 3, 31);
end
else if @reportquarter = 2
begin
set @quarterbegindate = datefromparts(@reportyear, 4, 1);
set @quarterenddate = datefromparts(@reportyear, 6, 30);
end
else if @reportquarter = 3
begin
set @quarterbegindate = datefromparts(@reportyear, 7, 1);
set @quarterenddate = datefromparts(@reportyear, 9, 30);
end
else if @reportquarter = 4
begin
set @quarterbegindate = datefromparts(@reportyear, 10, 1);
set @quarterenddate = datefromparts(@reportyear, 12, 31);
end
select
@quarterbegindate quarterbegindate
, @quarterenddate quarterenddate;
end
Comments
Post a Comment