Один из моих клиентов определяет (по странным финансовым причинам) финансовый месяц как период времени, начинающийся с среды сразу после последнего вторника месяца (включительно) и длится до последнего вторника следующего месяца (включительно).Найти первую среду после последнего вторника последнего финансового месяца
Мне нужно найти начало последнего и текущего финансового месяца.
Некоторые примеры:
если сегодня 23 сентября 2015 я должен получить 29 июля и 26 августа, так как текущий финансовый год проходит с 26 августа по 29 сентября.
Если сегодня 30 сентября 2015 года, мне нужно получить с 26 августа по 30 сентября.
У меня разные клиенты с разными определениями, и это означает, что некоторые из них используют среду, а другие используют понедельник, поэтому мне нужен этот день для параметра, например, понедельник = 1 и среда = 3. Я называю это FDOM, FirstDayOfMonth.
Моя работа до сих пор была сосредоточена на использовании формул, которые я нашел вокруг с первым и последним днями текущего и последнего месяца, с учетом FDOM. Мне удалось получить последнюю среду последнего месяца, но иногда это неверно, потому что я рассматриваю день месяца, который относится к солнечному месяцу, но также к следующему финансовому месяцу, например, 30 сентября относится к солнечному сентябрю, но к финансовому октябрю, как финансовый октябрь начинается 30 сентября.
DECLARE @BASE AS DateTime = '19000101 00:00'
DECLARE @FDOM AS INT = 3 --Wednesday
DECLARE @Datevalue AS DATE = GETDATE()
SET DATEFIRST @FDOM
select DATEADD(D,1-(DATEPART(dw,DATEADD(D,-1,DATEADD(MONTH, DATEDIFF(MONTH, @BASE, @Datevalue) , @BASE)))),DATEADD(D,-1,DATEADD(MONTH, DATEDIFF(MONTH, @BASE, @Datevalue) , @BASE)))
Это дает мне первую среду после того, как последний вторник последнего месяца, и это было бы правильно с 1 сентября по 29 сентября (это дает 26 августа), как «начало текущего финансового месяца». Но это было бы неправильно 30 сентября, так как это должно было дать 30 сентября, а также не так с 26 августа до конца августа, как это должно было дать 26 августа, а вместо этого дается 29 июля.
Так финансового апреля 2015 был 1 апреля до 28 апреля (но 'd хотите найти даты 1 апреля и 29 апреля)? –
Если сегодня с 29 апреля по 26 мая (оба включительно) мне нужно получить 1 апреля-29 апреля, да –
Другими словами: Я создаю подписку на SSRS, и когда я запускаю отчет, мне нужно, чтобы он был о последний полный финансовый месяц. Так что, если я запускаю его с 29 апреля по 26 мая включительно, то последний полный финансовый месяц должен быть Финансовым апрелем, который будет проходить с 1 апреля включительно до 29 апреля. Исключительно –