-- Fiscal Year : July to June
DECLARE @Today DATE = CAST(GETDATE() AS DATE)
DECLARE @BeginDate DATE = CAST(CASE WHEN @DateSelection = 6 -- Last 12 Months
THEN dbo.fn_LocalTimeToUtcTime(STR(MONTH(DATEADD(MONTH, -12,@Today)),2) + '/1/' + STR(YEAR(DATEADD(MONTH, -12, @Today)),4))
WHEN @DateSelection = 5 -- This Fiscal Year
THEN dbo.fn_LocalTimeToUtcTime(IIF(MONTH(@Today) > 6, '7/1/' + STR(YEAR(DATEADD(MONTH, -3, @Today)),4),'7/1/' + STR(YEAR(DATEADD(MONTH, -3, @Today)) - 1,4)))
WHEN @DateSelection = 4 -- This Fiscal Quarter
THEN dbo.fn_LocalTimeToUtcTime(CHOOSE(MONTH(@Today),'1', '1', '1','4','4','4','7','7','7', '10', '10', '10') + '/1/' + STR(YEAR(DATEADD(MONTH, -1, @Today)),4))
WHEN @DateSelection = 3 -- Last 3 Months
THEN dbo.fn_LocalTimeToUtcTime(STR(MONTH(DATEADD(MONTH, -3,@Today)),2) + '/1/' + STR(YEAR(DATEADD(MONTH, -3, @Today)),4))
WHEN @DateSelection = 2 -- Next Month
THEN dbo.fn_LocalTimeToUtcTime(DATEADD(MONTH, DATEDIFF(MONTH, 0, @Today) + 1, 0))
WHEN @DateSelection = 1 -- Last Month
THEN dbo.fn_LocalTimeToUtcTime(DATEADD(MONTH, DATEDIFF(MONTH, 0, @Today) - 1, 0))
ELSE DATEADD(MONTH, DATEDIFF(MONTH, 0, @Today), 0) -- This Month
END AS DATE)
DECLARE @EndDate DATE = CAST(CASE WHEN @DateSelection = 6
THEN dbo.fn_LocalTimeToUtcTime(EOMONTH(DATEADD(MONTH, DATEDIFF(MONTH, 0, @Today) - 1, 0)))
WHEN @DateSelection = 5
THEN dbo.fn_LocalTimeToUtcTime(IIF(MONTH(@Today) > 6, '6/30/' + STR(YEAR(DATEADD(MONTH, -3, @Today)) + 1 ,4),'6/30/' + STR(YEAR(DATEADD(MONTH, -3, @Today)),4)))
WHEN @DateSelection = 4
THEN dbo.fn_LocalTimeToUtcTime(CHOOSE(MONTH(@Today),'3/31/', '3/31/', '3/31/','6/30/','6/30/','6/30/','9/30/','9/30/','9/30/', '12/31/', '12/31/', '12/31/') + STR(YEAR(DATEADD(MONTH, -1, @Today)),4))
WHEN @DateSelection = 3
THEN dbo.fn_LocalTimeToUtcTime(EOMONTH(STR(MONTH(DATEADD(MONTH, -1,@Today)),2) + '/1/' + STR(YEAR(DATEADD(MONTH, -1, @Today)),4)))
WHEN @DateSelection = 2
THEN dbo.fn_LocalTimeToUtcTime(EOMONTH(@BeginDate))
WHEN @DateSelection = 1
THEN dbo.fn_LocalTimeToUtcTime(EOMONTH(@BeginDate))
ELSE EOMONTH(@Today)
END AS DATE)
SELECT @BeginDate, @EndDate
DECLARE @Today DATE = CAST(GETDATE() AS DATE)
DECLARE @BeginDate DATE = CAST(CASE WHEN @DateSelection = 6 -- Last 12 Months
THEN dbo.fn_LocalTimeToUtcTime(STR(MONTH(DATEADD(MONTH, -12,@Today)),2) + '/1/' + STR(YEAR(DATEADD(MONTH, -12, @Today)),4))
WHEN @DateSelection = 5 -- This Fiscal Year
THEN dbo.fn_LocalTimeToUtcTime(IIF(MONTH(@Today) > 6, '7/1/' + STR(YEAR(DATEADD(MONTH, -3, @Today)),4),'7/1/' + STR(YEAR(DATEADD(MONTH, -3, @Today)) - 1,4)))
WHEN @DateSelection = 4 -- This Fiscal Quarter
THEN dbo.fn_LocalTimeToUtcTime(CHOOSE(MONTH(@Today),'1', '1', '1','4','4','4','7','7','7', '10', '10', '10') + '/1/' + STR(YEAR(DATEADD(MONTH, -1, @Today)),4))
WHEN @DateSelection = 3 -- Last 3 Months
THEN dbo.fn_LocalTimeToUtcTime(STR(MONTH(DATEADD(MONTH, -3,@Today)),2) + '/1/' + STR(YEAR(DATEADD(MONTH, -3, @Today)),4))
WHEN @DateSelection = 2 -- Next Month
THEN dbo.fn_LocalTimeToUtcTime(DATEADD(MONTH, DATEDIFF(MONTH, 0, @Today) + 1, 0))
WHEN @DateSelection = 1 -- Last Month
THEN dbo.fn_LocalTimeToUtcTime(DATEADD(MONTH, DATEDIFF(MONTH, 0, @Today) - 1, 0))
ELSE DATEADD(MONTH, DATEDIFF(MONTH, 0, @Today), 0) -- This Month
END AS DATE)
DECLARE @EndDate DATE = CAST(CASE WHEN @DateSelection = 6
THEN dbo.fn_LocalTimeToUtcTime(EOMONTH(DATEADD(MONTH, DATEDIFF(MONTH, 0, @Today) - 1, 0)))
WHEN @DateSelection = 5
THEN dbo.fn_LocalTimeToUtcTime(IIF(MONTH(@Today) > 6, '6/30/' + STR(YEAR(DATEADD(MONTH, -3, @Today)) + 1 ,4),'6/30/' + STR(YEAR(DATEADD(MONTH, -3, @Today)),4)))
WHEN @DateSelection = 4
THEN dbo.fn_LocalTimeToUtcTime(CHOOSE(MONTH(@Today),'3/31/', '3/31/', '3/31/','6/30/','6/30/','6/30/','9/30/','9/30/','9/30/', '12/31/', '12/31/', '12/31/') + STR(YEAR(DATEADD(MONTH, -1, @Today)),4))
WHEN @DateSelection = 3
THEN dbo.fn_LocalTimeToUtcTime(EOMONTH(STR(MONTH(DATEADD(MONTH, -1,@Today)),2) + '/1/' + STR(YEAR(DATEADD(MONTH, -1, @Today)),4)))
WHEN @DateSelection = 2
THEN dbo.fn_LocalTimeToUtcTime(EOMONTH(@BeginDate))
WHEN @DateSelection = 1
THEN dbo.fn_LocalTimeToUtcTime(EOMONTH(@BeginDate))
ELSE EOMONTH(@Today)
END AS DATE)
SELECT @BeginDate, @EndDate
No comments:
Post a Comment