Получить последний день данного квартала и год в SQL - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть 2 переменные года и квартала, которые я получаю из представления. Я должен передать эти значения, чтобы получить дату последнего квартала и года. Есть ли способ сделать это в SQL?

Например:

select (QuarterEndDate) where Year = @year and Quarter = @quarter

Ответы [ 2 ]

1 голос
/ 20 апреля 2020

Я бы использовал datefromparts() и eomonth():

select eomonth(datefromparts(@year, 3 * @quarter, 1))

Демонстрация на DB Fiddlde :

declare @year int;
declare @quarter int;

set @year = 2020;
set @quarter = 3;

select eomonth(datefromparts(@year, 3 * @quarter, 1)) last_quarter_day
GO
| last_quarter_day |
| :--------------- |
| 2020-09-30       |
0 голосов
/ 20 апреля 2020

Попробуйте следующее, должна указать последнюю дату квартала.

первый вариант: qq - номер вашего квартала.

dateadd(qq, DateDiff(qq, 0, @Date), -1) 

второй вариант:

dateadd(D,-1,dateadd(M, 3*qq+3, CONVERT(date, CONVERT(varchar(5),@year)+'-1-1')))
...