declare @data datetime
set @data = getdate()
select day(dateadd(month,1,@data)-(day(@data)-1)-1) as NumGiorniMese
/*
Analizziamo come si giunge al risultato
*/
-- Trovo la data da elaborare aumentata di un mese:
select dateadd(month,1,@data)
-- Imposto la nuova data con giorno = 1:
select dateadd(month,1,@data)-(day(@data)-1)
-- Tolgo un giorno alla data:
select dateadd(month,1,@data)-(day(@data)-1)-1
-- Leggo il numero di giorni:
select day(dateadd(month,1,@data)-(day(@data)-1)-1)