this will give you the first of the month for a given date
inner select
select DATEDIFF(MONTH, 0, GETDATE())
will give the number of months from 1900-01-01
here it is 1350
this will be add to 1900-01-01 , but only the months
select DATEADD(MONTH,1350,0)
will give 2012-07-01 00:00:00.000
which is the start of the current month.
I think this is the most efficient way to find the starting of a month for any given date.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…