powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / datepart(ISO_WEEK,'20121231') -- 201201, а вернуть нужно 201301?
7 сообщений из 7, страница 1 из 1
datepart(ISO_WEEK,'20121231') -- 201201, а вернуть нужно 201301?
    #39562702
Фотография Focha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как получить корректный год?

Код: plsql
1.
select datepart(YYYY,'20121231') * 100 + datepart(ISO_WEEK,'20121231') --201201
...
Рейтинг: 0 / 0
datepart(ISO_WEEK,'20121231') -- 201201, а вернуть нужно 201301?
    #39562712
Руслан Дамирович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FochaКак получить корректный год?
Код: plsql
1.
select datepart(YYYY,'20121231') * 100 + datepart(ISO_WEEK,'20121231') --201201


Сия потребность непонятна.
Код: sql
1.
2.
3.
SET DATEFIRST 1
DECLARE @date DATE = '20121231'
SELECT DATEPART( YEAR, DATEADD( DAY, 7 - DATEPART( WEEKDAY, @date ), @date ) ) * 100 + 1
...
Рейтинг: 0 / 0
datepart(ISO_WEEK,'20121231') -- 201201, а вернуть нужно 201301?
    #39562732
Фотография Focha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Руслан ДамировичFochaКак получить корректный год?
Код: plsql
1.
select datepart(YYYY,'20121231') * 100 + datepart(ISO_WEEK,'20121231') --201201


Сия потребность непонятна.
Код: sql
1.
2.
3.
SET DATEFIRST 1
DECLARE @date DATE = '20121231'
SELECT DATEPART( YEAR, DATEADD( DAY, 7 - DATEPART( WEEKDAY, @date ), @date ) ) * 100 + 1



я сделал так
Код: sql
1.
2.
select datepart(YYYY, DATEDIFF(DAY,0,'20131230')/7*7+6) *100
     + datepart(ISO_WEEK, DATEDIFF(DAY,0,'20131230')/7*7+6)



Я хочу получить корректные недели.
...
Рейтинг: 0 / 0
datepart(ISO_WEEK,'20121231') -- 201201, а вернуть нужно 201301?
    #39563048
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FochaЯ хочу получить корректные недели.А что вас не устраивает?
Неделя началась с понедельника, '20121231', все остальные дни в январе 2013, - это первая неделя 2013 года.
Всё правильно.
...
Рейтинг: 0 / 0
datepart(ISO_WEEK,'20121231') -- 201201, а вернуть нужно 201301?
    #39563062
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
SELECT (DATEPART(YEAR,'20121231')
+CASE WHEN DATEPART(ISO_WEEK,'20121231')=1 AND MONTH('20121231')=12 THEN 1 WHEN DATEPART(ISO_WEEK,'20121231')>1 AND MONTH('20121231')=1 THEN -1 END) * 100
+DATEPART(ISO_WEEK,'20121231');
...
Рейтинг: 0 / 0
datepart(ISO_WEEK,'20121231') -- 201201, а вернуть нужно 201301?
    #39563072
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправка:
Код: sql
1.
2.
3.
SELECT (DATEPART(YEAR,'20121231')
+CASE WHEN DATEPART(ISO_WEEK,'20121231')=1 AND MONTH('20121231')=12 THEN 1 WHEN DATEPART(ISO_WEEK,'20121231')>50 AND MONTH('20121231')=1 THEN -1 ELSE 0 END) * 100
+DATEPART(ISO_WEEK,'20121231');
...
Рейтинг: 0 / 0
datepart(ISO_WEEK,'20121231') -- 201201, а вернуть нужно 201301?
    #39575700
Фотография Focha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В итоги сделали таблицу с корректными номерами недели и годом.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / datepart(ISO_WEEK,'20121231') -- 201201, а вернуть нужно 201301?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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