2013-12-24 4 views
0

Я группирую данные с dateadd() по неделям, но вместо этого хочу группировать по месяцам. У меня есть эта забавная функция dateadd.tsql group by months with dateadd()

DATEADD(day, - (1 * DATEPART(dw, Orders.OrderDate - 1)) + 1, CONVERT (date, Orders.OrderDate, 103)) 

поэтому мы вычитая неделю от текущей даты - это казалось мне так просто, как только изменение DATEPART в месяц и вычитанием 1 из него, однако, это дает мне некоторые довольно дурацкие результаты как изменить это, чтобы вычесть месяцы вместо недель?

+0

самое лучшее, что я придумал, это DATEADD (месяц, DATEDIFF (месяц, 0, Orders.OrderDate), 30) - но я не верю, что результаты, которые я получаю – nbpeth

ответ

0

так что вы в основном уже пробовали:

DATEADD (день, - (1 * МЕСЯЦ (Dw, Orders.OrderDate - 1)) + 1, CONVERT (дата, Orders.OrderDate, 103))

+0

, месяц принимает только параметр, месяц (дата), насколько я могу судить, поэтому я еще не пытался это сделать – nbpeth