Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
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] Ответить | Цитировать Сообщить модератору |
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] Ответить | Цитировать Сообщить модератору |
Дедушка Member Откуда: Город трёх революций Сообщений: 5114 |
как вариант для sql2012:select datepart(y,datefromparts(year(getdate()),12,31)) |
16 авг 12, 13:17 [13020004] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47045 |
SELECT 365+ISDATE(STR(10000*YEAR(GETDATE())+229)); |
16 авг 12, 21:47 [13023342] Ответить | Цитировать Сообщить модератору |
trew Member Откуда: Москва Сообщений: 2646 |
iap, Здорово! SELECT 365+ISDATE(10000*YEAR(GETDATE())+229); Работает, и так. |
16 авг 12, 22:32 [13023552] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |