Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / почему номер недели 53 хотя указал ISO_WEEK / 9 сообщений из 9, страница 1 из 1
26.08.2019, 14:44
    #39853745
Focha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему номер недели 53 хотя указал ISO_WEEK
почему номер недели 53 хотя указал ISO_WEEK?


Код: sql
1.
2.
3.
4.
5.
set language russian;
SET DATEFIRST 1 ;
set dateformat 'ymd';

select DATEPART(ISO_WEEK, '20201231')



Результат 53, а до этой даты все нормально, что делать?
Microsoft SQL Server 2017 (RTM-CU15-OD) (KB4506633) - 14.0.3164.1 (X64)
...
Рейтинг: 0 / 0
26.08.2019, 14:56
    #39853751
Minamoto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему номер недели 53 хотя указал ISO_WEEK
Fochaпочему номер недели 53 хотя указал ISO_WEEK?

Наверное потому, что
https://docs.microsoft.com/ru-ru/sql/t-sql/functions/datepart-transact-sql?view=sql-server-2017 Наибольшее число недель в году может составлять 52 или 53.

Правила описаны, можете вручную пересчитать:
Каждая неделя приписывается тому году, в котором находится ее четверг.
...
Рейтинг: 0 / 0
26.08.2019, 15:02
    #39853755
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему номер недели 53 хотя указал ISO_WEEK
Код: sql
1.
select DATEPART(WEEK, '20121231') [2012],  DATEPART(WEEK, '20201231') [2020]
...
Рейтинг: 0 / 0
26.08.2019, 16:32
    #39853789
Focha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему номер недели 53 хотя указал ISO_WEEK
Konst_One
Код: sql
1.
select DATEPART(WEEK, '20121231') [2012],  DATEPART(WEEK, '20201231') [2020]


да, я говорю про стандарт iso
Код: sql
1.
2.
3.
4.
5.
select 
 DATEPART(ISO_WEEK, '20121231') [2012] -- 1
,DATEPART(ISO_WEEK, '20201231') [2020] -- 53
,DATEPART(WEEK, '20121231') [2012] -- 54 ???? такой недели нет
,DATEPART(WEEK, '20201231') [2020] -- 53 если в 2012 ISO_WEEK посчитал правильно, то в 2020 53
...
Рейтинг: 0 / 0
26.08.2019, 16:39
    #39853796
Посетитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему номер недели 53 хотя указал ISO_WEEK
FochaKonst_One
Код: sql
1.
select DATEPART(WEEK, '20121231') [2012],  DATEPART(WEEK, '20201231') [2020]



да, я говорю про стандарт iso
Код: sql
1.
2.
3.
4.
5.
select 
 DATEPART(ISO_WEEK, '20121231') [2012] -- 1
,DATEPART(ISO_WEEK, '20201231') [2020] -- 53
,DATEPART(WEEK, '20121231') [2012] -- 54 ???? такой недели нет
,DATEPART(WEEK, '20201231') [2020] -- 53 если в 2012 ISO_WEEK посчитал правильно, то в 2020 53



так что у вас со стандартом то не бьется?
по стандарту первой неделей считается неделя, содержащая первый четверг в году.
...
Рейтинг: 0 / 0
26.08.2019, 16:44
    #39853799
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему номер недели 53 хотя указал ISO_WEEK
...
Рейтинг: 0 / 0
26.08.2019, 16:56
    #39853811
Focha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему номер недели 53 хотя указал ISO_WEEK
...
Рейтинг: 0 / 0
26.08.2019, 17:04
    #39853814
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему номер недели 53 хотя указал ISO_WEEK
Focha,

А вы понимаете, что такое неделя ISO? Что первая неделя ISO может начинаться в предыдущем году, а последняя уходить в следующий год.
...
Рейтинг: 0 / 0
26.08.2019, 17:07
    #39853816
Focha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему номер недели 53 хотя указал ISO_WEEK
a_voroninFocha,

А вы понимаете, что такое неделя ISO? Что первая неделя ISO может начинаться в предыдущем году, а последняя уходить в следующий год.

да
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / почему номер недели 53 хотя указал ISO_WEEK / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]