Как насчет использования аккуратного трюка DATETIME?
select
DATEADD(MONTH, DATEDIFF(MONTH, 0, order_date), 0) AS orderMonth, count(*) as orderCount
from
[order]
where
order_date >= '2009-01-01'
group by
DATEADD(MONTH, DATEDIFF(MONTH, 0, order_date), 0)
order by
orderMonth