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

Код: plsql
1.
select datepart(YYYY,'20121231') * 100 + datepart(ISO_WEEK,'20121231') --201201
...
Рейтинг: 0 / 0
01.12.2017, 17:00
    #39562712
Руслан Дамирович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datepart(ISO_WEEK,'20121231') -- 201201, а вернуть нужно 201301?
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
01.12.2017, 17:14
    #39562732
Focha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datepart(ISO_WEEK,'20121231') -- 201201, а вернуть нужно 201301?
Руслан Дамирович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
02.12.2017, 17:24
    #39563048
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datepart(ISO_WEEK,'20121231') -- 201201, а вернуть нужно 201301?
FochaЯ хочу получить корректные недели.А что вас не устраивает?
Неделя началась с понедельника, '20121231', все остальные дни в январе 2013, - это первая неделя 2013 года.
Всё правильно.
...
Рейтинг: 0 / 0
02.12.2017, 19:00
    #39563062
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datepart(ISO_WEEK,'20121231') -- 201201, а вернуть нужно 201301?
Код: 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
02.12.2017, 19:44
    #39563072
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datepart(ISO_WEEK,'20121231') -- 201201, а вернуть нужно 201301?
Поправка:
Код: 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
25.12.2017, 20:29
    #39575700
Focha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
datepart(ISO_WEEK,'20121231') -- 201201, а вернуть нужно 201301?
В итоги сделали таблицу с корректными номерами недели и годом.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / datepart(ISO_WEEK,'20121231') -- 201201, а вернуть нужно 201301? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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