select
dateadd(M, 3*number, CONVERT(date, CONVERT(varchar(5),@year)+'-1-1')),
dateadd(D,-1,dateadd(M, 3*number+3, CONVERT(date, CONVERT(varchar(5),@year)+'-1-1'))),
Number QuarterNo
from master..spt_values
where type='p'
and number between 1 and 4
Có thể bạn sẽ muốn sử dụng ngày tháng, không phải ngày giờ, nếu không thì không có gì trong ngày của ngày cuối cùng của quý được bao gồm trong quý của bạn (ví dụ:2013-06-30 14:15)
Để đi theo cách khác, hãy sử dụng datepart
select ((DATEPART(q,@date)+2) % 4)+1