Получаем записи за предыдущаю неделю (от понедельника до полуночи с воскресенье на понедельник):
Если воскресенье учитывать не надо – вместо @EndOfPrevWeek + 2 надо писать @EndOfPrevWeek + 1.
Сделать выборку по месяцу намного проще:
Аналогичные штуки проходят с днём и годом.
Работает в т.ч. в MS SQL 2005 (если MSDN не врёт).
DECLARE @TodayDayOfWeek INT DECLARE @EndOfPrevWeek DateTime DECLARE @StartOfPrevWeek DateTime SET @TodayDayOfWeek = datepart(dw, GetDate()) SET @EndOfPrevWeek = DATEADD(dd, -@TodayDayOfWeek, GetDate()) SET @StartOfPrevWeek = DATEADD(dd, -(@TodayDayOfWeek+6), GetDate()) SELECT --- Тут выборка WHERE CREATED_DATE BETWEEN CONVERT(DATE, @StartOfPrevWeek,7) AND CONVERT(DATE, @EndOfPrevWeek+2,7) GROUP BY p.PRODUCT_NAME
Если воскресенье учитывать не надо – вместо @EndOfPrevWeek + 2 надо писать @EndOfPrevWeek + 1.
Сделать выборку по месяцу намного проще:
DECLARE @EndOfPeriod DateTime DECLARE @StartOfPriod DateTime SET @StartOfPriod = DATEADD(mm, DATEDIFF(mm,0,getdate())-1, 0) SET @EndOfPeriod = DATEADD(mm, 1, @StartOfPriod) SELECT ---- тут выборка WHERE CREATED_DATE BETWEEN CONVERT(DATE, @StartOfPriod,7) AND CONVERT(DATE, @EndOfPeriod,7)
Аналогичные штуки проходят с днём и годом.
Работает в т.ч. в MS SQL 2005 (если MSDN не врёт).
Комментариев нет:
Отправить комментарий