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

Откуда: Беларусь город Брест
Сообщений: 173
Подскажите пожалуйста как в MS SQL Server c помощью SQL запросов получить
первый и последний день предыдущего и текущего месяца
8 июн 12, 10:46    [12685911]     Ответить | Цитировать Сообщить модератору
 Re: Получение дат предыдущего и текущего месяца  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Vladimir Mihailovich,

В FAQ загляните...
8 июн 12, 10:47    [12685916]     Ответить | Цитировать Сообщить модератору
 Re: Получение дат предыдущего и текущего месяца  [new]
SunJun
Member

Откуда:
Сообщений: 135
DECLARE @mydate DATETIME
SELECT @mydate = GETDATE()
SELECT CONVERT(VARCHAR(25),DATEADD(m,-1,DATEADD(dd,-(DAY(@mydate)-1),@mydate)),101) AS Date_Value,
'First Day of Last Month' AS Date_Type
union
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@mydate)),@mydate),101) ,
'Last Day of Previous Month'
UNION
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@mydate)-1),@mydate),101) AS Date_Value,
'First Day of Current Month' AS Date_Type
UNION
SELECT CONVERT(VARCHAR(25),@mydate,101) AS Date_Value, 'Today' AS Date_Type
UNION
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,1,@mydate))),DATEADD(mm,1,@mydate)),101) ,
'Last Day of Current Month'
UNION
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,1,@mydate))-1),DATEADD(mm,1,@mydate)),101) ,
'First Day of Next Month'
8 июн 12, 11:40    [12686427]     Ответить | Цитировать Сообщить модератору
 Re: Получение дат предыдущего и текущего месяца  [new]
hallabud
Member

Откуда: Киев
Сообщений: 245
Vladimir Mihailovich,

Или так (меньше буков):
SELECT   DATEADD(month,DATEDIFF(month,'20010101',CURRENT_TIMESTAMP),'20010101') AS 'Curr1st' -- первый день текущего
	   , DATEADD(month,DATEDIFF(month,'20010131',CURRENT_TIMESTAMP),'20010131') AS 'CurrLst'-- последний день текущего
	   , DATEADD(month,DATEDIFF(month,'20010101',CURRENT_TIMESTAMP)-1,'20010101') AS 'Prev1st' -- первый день предыдущего
	   , DATEADD(month,DATEDIFF(month,'20010131',CURRENT_TIMESTAMP)-1,'20010131') AS 'PrevLst'; -- последний день предыдущего
8 июн 12, 14:27    [12688050]     Ответить | Цитировать Сообщить модератору
 Re: Получение дат предыдущего и текущего месяца  [new]
Vladimir Mihailovich
Member

Откуда: Беларусь город Брест
Сообщений: 173
Нашел как первый день предыдущего месяца находить:
SELECT
   DATEADD(month, DATEDIFF(month, 0, GETDATE())-1, 0)
8 июн 12, 18:04    [12690048]     Ответить | Цитировать Сообщить модератору
 Re: Получение дат предыдущего и текущего месяца  [new]
Vladimir Mihailovich
Member

Откуда: Беларусь город Брест
Сообщений: 173
как также кратко получить последний день предыдущего и текущего месяца
8 июн 12, 18:13    [12690106]     Ответить | Цитировать Сообщить модератору
 Re: Получение дат предыдущего и текущего месяца  [new]
kain111
Member

Откуда:
Сообщений: 227
SunJun, ответил на твой вопрос
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,1,@mydate))),DATEADD(mm,1,@mydate)),101) ,
'Last Day of Current Month'
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@mydate)),@mydate),101) ,
'Last Day of Previous Month'
9 июн 12, 13:35    [12693857]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить