sql >> Databasteknik >  >> RDS >> Sqlserver

Få kvartalets startdatum och slutdatum från år

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  

Du kommer förmodligen att vilja använda datum, inte datumtider, annars ingår ingenting under dagen den sista dagen i kvartalet (t.ex.:2013-06-30 14:15)

För att gå åt andra hållet, använd datepart

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


  1. Varför castar inte JSON null till SQL null i postgres?

  2. Undantag i trådhuvudet com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:Du har ett fel i din SQL-syntax

  3. Returnerar alla rader med vissa villkor

  4. Hur man återanvänder en resultatkolumn i ett uttryck för en annan resultatkolumn