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

Откуда: Москва
Сообщений: 2646
DECLARE @d smalldatetime
SET @d =GETDATE()

--SELECT
--DATEADD(day,1-DATEPART(y,@d),@d)
--,DATEADD(YY,1,DATEADD(day,1-DATEPART(y,@d),@d))-1

SELECT DATEDIFF(D,
DATEADD(day,1-DATEPART(y,@d),@d),
DATEADD(YY,1,DATEADD(day,1-DATEPART(y,@d),@d))-1
)

Почему результат 365, должно быть 366 ?
16 авг 12, 12:40    [13019725]     Ответить | Цитировать Сообщить модератору
 Re: Количество дней в году, по текущей дате  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
trew,

Разобрался, потомучто так работает DATEDIFF
SELECT DATEDIFF(D,'20120501','20120503')

SELECT DATEDIFF(D,
DATEADD(day,1-DATEPART(y,@d),@d),
DATEADD(YY,1,DATEADD(day,1-DATEPART(y,@d),@d))
)
16 авг 12, 12:44    [13019757]     Ответить | Цитировать Сообщить модератору
 Re: Количество дней в году, по текущей дате  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5142
как вариант для sql2012:
select datepart(y,datefromparts(year(getdate()),12,31))
16 авг 12, 13:17    [13020004]     Ответить | Цитировать Сообщить модератору
 Re: Количество дней в году, по текущей дате  [new]
iap
Member

Откуда: Москва
Сообщений: 47194
SELECT 365+ISDATE(STR(10000*YEAR(GETDATE())+229));
16 авг 12, 21:47    [13023342]     Ответить | Цитировать Сообщить модератору
 Re: Количество дней в году, по текущей дате  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
iap,

Здорово!
SELECT 365+ISDATE(10000*YEAR(GETDATE())+229);

Работает, и так.
16 авг 12, 22:32    [13023552]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить