Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Подскажите функцию  [new]
Set666
Guest
Подскажите функцию которая вычисляет сколько полных месяцев прошло по календарю, за опредилённый период времени для mssql2000. Заранее спасибо.
11 июл 11, 23:22    [10958750]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите функцию  [new]
Andrey Sribnyak
Member

Откуда: Киев
Сообщений: 600
Set666,

Пробуйте так
DATEDIFF (mm ,startdate ,enddate )
11 июл 11, 23:32    [10958781]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите функцию  [new]
Wrp
Member

Откуда:
Сообщений: 1
хм, я когда всегда сложнее делал =(
SELECT MONTH(@date1) - MONTH(@date2) - 12 * (YEAR(@date1) - YEAR(@date2))
12 июл 11, 05:17    [10959330]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите функцию  [new]
Антон Штерн
Member

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

Ваш запрос посчитает не количество полных месяцев (если взять 31.01.2000 и 01.02.2000 - вернет 1 месяц)
12 июл 11, 10:59    [10960289]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите функцию  [new]
_ч_
Member

Откуда:
Сообщений: 1446
Антон Штерн,

Так при таком условии и запрос в первом ответе не работает. По-моему все банальнее. Можно смотреть на день в первой дате и если он начинается с 01, то подойдет первый запрос, если же с другого числа, то datediff - 1

вот как-то так видимо:
declare @db datetime = '20110121'
declare @de date = '20110221'

select case DATEPART(DAY, @db)
WHEN '01' THEN 
DATEDIFF(month, @db, @de)
ELSE
DATEDIFF(month, @db, @de)-1
END
12 июл 11, 11:27    [10960454]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить