Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Нужно вычислить дату понедельника заданной по номеру недели.
|
|||
|---|---|---|---|
|
#18+
Уважаемые коллеги, подскажите как проще решить задачку: есть номер недели года. Нужно вычислить дату понедельника этой недели. Вот как я (немного подумавши сделал): это все будет в процедуре, в параметрах - год и номер недели, возвращаться будет дата set datefirst 1 declare @WeekNumber int set @WeekNumber=2 declare @Year int set @Year = year(getdate()) dateadd( week , @WeekNumber-1 , dateadd( day , -1*(datepart(weekday, '01.01.' + cast(@Year as varchar(4))) - 1) , '01.01.' + cast(@Year as varchar(4)) ) ) Подскажите плиз, может есть какой-нить другой, более красивый способ? Есть ли в MsSql средства, позволяющие конструировать даты из всяких параметров без склеивания строк? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2001, 13:17 |
|
||
|
Нужно вычислить дату понедельника заданной по номеру недели.
|
|||
|---|---|---|---|
|
#18+
Если тебе не нравится cast, то может быть так: Но я честно не знаю - что лучше. set datefirst 1 declare @WeekNumber int set @WeekNumber=2 declare @Year int set @Year = year(getdate()) dateadd( week , @WeekNumber-1 , dateadd( day , -1*(datepart(weekday, DateAdd(yy, @Year-1900, 0)) - 1) , DateAdd(yy, @Year-1900, 0) ) ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2001, 06:10 |
|
||
|
Нужно вычислить дату понедельника заданной по номеру недели.
|
|||
|---|---|---|---|
|
#18+
А можно и так, если первая неделя имеет номер 0. declare @Week int, @FirstDay Datetime set @Week = 1 set @FirstDay = DateAdd(yy, Year(GetDate())-1900, 0) select DateAdd(dd,7*@Week,@FirstDay) Если вести отсчет с недель с 1, то надо отнять 1 при присвоении @Week ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2001, 06:18 |
|
||
|
Нужно вычислить дату понедельника заданной по номеру недели.
|
|||
|---|---|---|---|
|
#18+
Спасибо ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2001, 13:30 |
|
||
|
Нужно вычислить дату понедельника заданной по номеру недели.
|
|||
|---|---|---|---|
|
#18+
Мой последний пример ошибочен. Потому что, надо недели прибавлять не к первому дню года, а к первому понедельнику года. Так что ваш вариант более правильный. Не обращайте внимания на мой пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2001, 06:03 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32017342&tid=1824902]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
45ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 324ms |

| 0 / 0 |
