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
Вероятно ще искате да използвате дати, а не дати и часове, в противен случай нищо през деня на последния ден от тримесечието не е включено във вашето тримесечие (напр.:2013-06-30 14:15)
За да отидете в другата посока, използвайте datepart
select ((DATEPART(q,@date)+2) % 4)+1