Percentage up to yesterday(completed day)
1.0*(datepart(d,getdate())-1) / datepart(d,dateadd(m,datediff(m,0,getdate())+1,0)-1)
Percentage up to current time of day (including part day, reasonable for 24/7..)
1.0*(datepart(d,getdate())-1+convert(float,getdate())-convert(int,getdate())) / datepart(d,dateadd(m,datediff(m,0,getdate())+1,0)-1)
We do this all the time, a % while maybe skewed at times is better than most alternatives.