Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Последняя неделя пред месяца  [new]
sanekoffice
Member

Откуда:
Сообщений: 373
Здравствуйте!

К примеру : 02.02.2015г.
Мне нужно получить последнюю неделю предыдущего месяца: лезу в календарь и вижу с 26 по 31 января.
20 янв 15, 10:04    [17141352]     Ответить | Цитировать Сообщить модератору
 Re: Последняя неделя пред месяца  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Приветсвую.. есди вы совй вопрос впишите в поиск по форуму - найдете как минимум 5 готовых решений. Тема обсуждалась неоднократно.
20 янв 15, 10:07    [17141374]     Ответить | Цитировать Сообщить модератору
 Re: Последняя неделя пред месяца  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
sanekoffice
Здравствуйте!

К примеру : 02.02.2015г.
Мне нужно получить последнюю неделю предыдущего месяца: лезу в календарь и вижу с 26 по 31 января.
А 1 февраля чем Вам насолило?
20 янв 15, 10:23    [17141451]     Ответить | Цитировать Сообщить модератору
 Re: Последняя неделя пред месяца  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
DECLARE @D DATE='20150202';
SELECT
 DATEADD(DAY, -DATEDIFF(DAY,0,DATEADD(DAY,-1,DATEADD(MONTH,DATEDIFF(MONTH,0,@D),0)))%7,DATEADD(DAY,-1,DATEADD(MONTH,DATEDIFF(MONTH,0,@D),0)))
,DATEADD(DAY,6-DATEDIFF(DAY,0,DATEADD(DAY,-1,DATEADD(MONTH,DATEDIFF(MONTH,0,@D),0)))%7,DATEADD(DAY,-1,DATEADD(MONTH,DATEDIFF(MONTH,0,@D),0)));
20 янв 15, 10:34    [17141503]     Ответить | Цитировать Сообщить модератору
 Re: Последняя неделя пред месяца  [new]
sanekoffice
Member

Откуда:
Сообщений: 373
iap,
Нужны дни именно пред. месяца
20 янв 15, 10:34    [17141509]     Ответить | Цитировать Сообщить модератору
 Re: Последняя неделя пред месяца  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
sanekoffice
iap,
Нужны дни именно пред. месяца
Вы совсем ничего не можете?
DECLARE @D DATE='20150202';
SELECT
 DATEADD(DAY, -DATEDIFF(DAY,0,DATEADD(DAY,-1,DATEADD(MONTH,DATEDIFF(MONTH,0,@D),0)))%7,DATEADD(DAY,-1,DATEADD(MONTH,DATEDIFF(MONTH,0,@D),0)))
,DATEADD(DAY,-1,DATEADD(MONTH,DATEDIFF(MONTH,0,@D),0));
20 янв 15, 10:58    [17141626]     Ответить | Цитировать Сообщить модератору
 Re: Последняя неделя пред месяца  [new]
sanekoffice
Member

Откуда:
Сообщений: 373
iap
sanekoffice
iap,
Нужны дни именно пред. месяца
Вы совсем ничего не можете?
DECLARE @D DATE='20150202';
SELECT
 DATEADD(DAY, -DATEDIFF(DAY,0,DATEADD(DAY,-1,DATEADD(MONTH,DATEDIFF(MONTH,0,@D),0)))%7,DATEADD(DAY,-1,DATEADD(MONTH,DATEDIFF(MONTH,0,@D),0)))
,DATEADD(DAY,-1,DATEADD(MONTH,DATEDIFF(MONTH,0,@D),0));


Я отвечал на вопрос "А 1 февраля чем Вам насолило?". В остальном БОЛЬШОЕ спасибо)
20 янв 15, 11:09    [17141691]     Ответить | Цитировать Сообщить модератору
 Re: Последняя неделя пред месяца  [new]
zasandator
Member [скрыт] [заблокирован]

Откуда:
Сообщений: 4887
sanekoffice,

declare @date date = getdate()
select
    dateadd(dd,-1,dateadd(mm,1,convert(date,convert(varchar(08),@date,120)+'01',120))) [Последний день текущего месяца],
    dateadd(dd,-1,convert(date,convert(varchar(08),@date,120)+'01',120)) [Последний день предыдущего месяца],
    @date [аргумент]
20 янв 15, 13:57    [17142833]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить