|
Узнать начало недели по её номеру
|
|||
---|---|---|---|
#18+
Уважаемые, я немного запутался... Понимаю, как получить номер недели, но как получить по номеру недели дату начала недели - никак не могу понять. Например, номер недели в этом году: 33, начало недели должно быть 2014-08-11. Подскажите, будьте добры, как выразить это одним select-ом? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2014, 17:39 |
|
Узнать начало недели по её номеру
|
|||
---|---|---|---|
#18+
Слонъ, Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2014, 17:41 |
|
Узнать начало недели по её номеру
|
|||
---|---|---|---|
#18+
WarAnt , ну а как быть в следующем году? А через год? Каждый раз скрипт править?.. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2014, 17:46 |
|
Узнать начало недели по её номеру
|
|||
---|---|---|---|
#18+
Слонъ WarAnt , ну а как быть в следующем году? А через год? Каждый раз скрипт править?..\ Вот вы ленивые пошли все:) Код: sql 1.
Год надеюсь сможете сами 2015 поставить;) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2014, 17:52 |
|
Узнать начало недели по её номеру
|
|||
---|---|---|---|
#18+
С константами не пройдёт. Требуется чтобы результат не зависел от года, указанного в запросе и брался всегда текущий год. Попробовал год заменить на DATEPART(year, GETDATE()) - вообще не так работает, как если бы год в кавычках указать. Видимо, оно считает значение как int, а не как date ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2014, 18:09 |
|
Узнать начало недели по её номеру
|
|||
---|---|---|---|
#18+
СлонъС константами не пройдёт. Требуется чтобы результат не зависел от года, указанного в запросе и брался всегда текущий год. Попробовал год заменить на DATEPART(year, GETDATE()) - вообще не так работает, как если бы год в кавычках указать. Видимо, оно считает значение как int, а не как date а что вам мешает сделать еще одно действие и получить из целого значения номера года дату начала года? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2014, 18:13 |
|
Узнать начало недели по её номеру
|
|||
---|---|---|---|
#18+
ShakillСлонъС константами не пройдёт. Требуется чтобы результат не зависел от года, указанного в запросе и брался всегда текущий год. Попробовал год заменить на DATEPART(year, GETDATE()) - вообще не так работает, как если бы год в кавычках указать. Видимо, оно считает значение как int, а не как date а что вам мешает сделать еще одно действие и получить из целого значения номера года дату начала года? Я уже выше написал что мешает:) авторС константами не пройдёт. Требуется чтобы результат не зависел от года, указанного в запросе и брался всегда текущий год. Попробовал год заменить на DATEPART(year, GETDATE()) - вообще не так работает, как если бы год в кавычках указать. Видимо, оно считает значение как int, а не как date эх Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2014, 18:23 |
|
Узнать начало недели по её номеру
|
|||
---|---|---|---|
#18+
СлонъС константами не пройдёт. Требуется чтобы результат не зависел от года, указанного в запросе и брался всегда текущий год. Попробовал год заменить на DATEPART(year, GETDATE()) - вообще не так работает, как если бы год в кавычках указать. Видимо, оно считает значение как int, а не как date Ну и так для общего развития, дата это и есть int, а точнее число дней от даты в зависимости от того какой из типов datetime вы используете. Поэтому если вы преобразовываете int в дату то и получаете 2014`й день от ... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2014, 18:27 |
|
Узнать начало недели по её номеру
|
|||
---|---|---|---|
#18+
Да, в общем-то сделал похожим образом, спасибо за помощь! У меня получилось так: Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2014, 18:32 |
|
Узнать начало недели по её номеру
|
|||
---|---|---|---|
#18+
кто в лес, кто по дрова но главное, что все довольны Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
WarAnt's 1st date RUS WarAnt's 1st day of week RUS Слонъ's 1st date RUS Слонъ's 1st day of week RUS2014-08-18 00:00:00.000 понедельник 2014-08-19 00:00:00.000 вторник WarAnt's 1st date ENG WarAnt's 1st day of week ENG WarAnt's 1st date ENG Слонъ's 1st day of week ENG2014-08-17 00:00:00.000 Sunday 2014-08-18 00:00:00.000 Monday ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2014, 18:53 |
|
Узнать начало недели по её номеру
|
|||
---|---|---|---|
#18+
Возможно я не в тему, но есть же в FAQ отличные вычисления от iap: Некоторые вычисления с датой Оттуда и плясать. Отличный гайд, столько наглядных примеров, что даже стыдно спрашивать что-то про дату, т.к.: "Все уже украдено до нас". Нужно только немного усилий мозга, чтобы адаптировать это к своей ситуации. ИМХО. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2014, 19:08 |
|
Узнать начало недели по её номеру
|
|||
---|---|---|---|
#18+
Закешируйте её в таблицу с правильными индексами и развлекайтесь. http://www.sql.ru/forum/1097504/vuha-dlya-kalendarya?hl=????? ??? ????????? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2014, 19:15 |
|
Узнать начало недели по её номеру
|
|||
---|---|---|---|
#18+
господи. теперь ему таблицы понравились. с индексами. нет, ну вперед конечно, хоть не рекурсивное cte. Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2014, 22:43 |
|
Узнать начало недели по её номеру
|
|||
---|---|---|---|
#18+
o-oкто в лес, кто по дрова но главное, что все довольны Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
WarAnt's 1st date RUS WarAnt's 1st day of week RUS Слонъ's 1st date RUS Слонъ's 1st day of week RUS2014-08-18 00:00:00.000 понедельник 2014-08-19 00:00:00.000 вторник WarAnt's 1st date ENG WarAnt's 1st day of week ENG WarAnt's 1st date ENG Слонъ's 1st day of week ENG2014-08-17 00:00:00.000 Sunday 2014-08-18 00:00:00.000 Monday Про америкосов вопрос не поступал, понятно что у них все через ... и это нужно учитывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2014, 11:24 |
|
Узнать начало недели по её номеру
|
|||
---|---|---|---|
#18+
WarAnt, во блин, у него ответ подписан для 33-ей недели, это дата 2014-08-11 . Слонъномер недели в этом году: 33, начало недели должно быть 2014-08-11. у вас ни в каком языке эта дата не получается, я показываю, что у вас хоть какое-то подобие первого дня недели, а у "взявшего вашу идею" ТС вообще неделя начинается не с того дня при любом раскладе ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2014, 11:37 |
|
Узнать начало недели по её номеру
|
|||
---|---|---|---|
#18+
o-oWarAnt, во блин, у него ответ подписан для 33-ей недели, это дата 2014-08-11 . Слонъномер недели в этом году: 33, начало недели должно быть 2014-08-11. у вас ни в каком языке эта дата не получается, я показываю, что у вас хоть какое-то подобие первого дня недели, а у "взявшего вашу идею" ТС вообще неделя начинается не с того дня при любом раскладе чего вдруг не получается то, просто нужно из взятого номера недели вычесть единицу при запросе Код: sql 1. 2.
2014-08-11 00:00:00.000 о-о вы меня удивили чес слово. И да это канает только для русского языка. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2014, 11:48 |
|
Узнать начало недели по её номеру
|
|||
---|---|---|---|
#18+
Что уже закрыть топик:) вот вариант для обоих языков Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2014, 11:59 |
|
Узнать начало недели по её номеру
|
|||
---|---|---|---|
#18+
WarAnt, слушайте, вчера было уже время отваливания с работы, я, не вдаваясь в подробности, беру ваш код, код ТС, подставляю 33, удивляюсь да, у меня логин "америкосный", т.е. ответ мне выпал воскресный. я тогда собираю вместе ваш и его код и просто привожу результат, даже ответ не пишу, всего-то показываю, к чему пришли. никаких наездов :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2014, 12:01 |
|
Узнать начало недели по её номеру
|
|||
---|---|---|---|
#18+
WarAntЧто уже закрыть топик:) вот вариант для обоих языков Код: sql 1. 2. 3.
так у меня для всех языков что-ли? 16862205 зачем вообще анализировать @@DATEFIRST, достаточно базовую дату выбрать так, чтобы это был и понедельник, и начало первой недели. т.е. 20010101 сгодился. хотя я что, я за разнообразие :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2014, 12:06 |
|
|
start [/forum/topic.php?fid=46&msg=38808735&tid=1699991]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
160ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 245ms |
total: | 514ms |
0 / 0 |