Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Ottieni Quarters StartDate e EndDate dall'anno

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  

Probabilmente vorrai utilizzare date, non datetime, altrimenti nel tuo trimestre non viene incluso nulla durante il giorno dell'ultimo giorno del trimestre (es:30-06-2013 14:15)

Per andare dall'altra parte, usa datepart

select ((DATEPART(q,@date)+2) % 4)+1