|
|
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
to SAA_ Читай внимательно - select to_char(to_date('31.12.2002', 'DD.MM.YYYY'), 'IW') возвращает 01 вместо 53 select to_char(to_date('07.01.2002', 'DD.MM.YYYY'), 'WW') возвращает 01 вместо 02 Тогда и доставать не будет... Да и вообще, вопрос уже закрыт по-моему, правильный вариант был предложен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2002, 16:36 |
|
||
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
"select to_char(to_date('31.12.2002', 'DD.MM.YYYY'), 'IW') возвращает 01 вместо 53" Да, я согласен, формально должно быть 53, а не 1. Но ведь эта неделя не полная, в неё входит только понедельник и вторник(30 и 31). Остальные дни недели относятся к другому году и являются именно первой неделей следующего года. Можем ли мы утверждать что это именно 53 неделя? Может ли она считатся полноценной неделей? Ведь неделя это не два дня, а семь дней, то есть начиная (для России) с понедельника и заканчивая воскресеньем. Если мы будем считать что это 53 неделя 2002 года и 1 неделя 2003 года одновременно, то при подсчёте недель в двух годах, получим одну лишнюю неделю, которая учлась дважды. Правильно ли это? Или такой пример: возьмём скажем следующую неделю октября 2002г., с 28 октября по 3 ноября. Так вот, относительно реального календаря это одна неделя, а не две. Не две, только потомучто она попала в два месяца. Поэтому "select to_char(to_date('31.12.2002', 'DD.MM.YYYY'), 'IW') возвращает 01 вместо 53", выглядит вполне логичным. Использование маски 'IW' даёт именно то что Andrey хотел. "Ошибка" происходит только для дней года последней недели, если она не заканчивается воскресеньем. Для этого можно делать отдельную проверку, а в основном пользоваться IW. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2002, 17:26 |
|
||
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
To softbulder Извини, но ты опять не прав. Использование маски 'IW' даёт именно то что Andrey хотел. Как известно, он хотел "номер недели относительно реального календаря ..." То есть, ну уж никак не хотел to_char(to_date('01.01.2005', 'DD.MM.YYYY'), 'IW') = 53. Да и про "ошибку" все совсем не так. Еще раз, правильный с точки зрения постановки вопроса вариант был предложен - 18 окт 02, 16:52. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2002, 18:07 |
|
||
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
AndreyВсе было бы здорово, если бы SELECT TO_CHAR(TO_DATE('07-JAN-2002','DD-MON-YY'), 'WW') "New Year" FROM DUAL; давало вторую неделю, а не первую .. а мне бы нужно номер недели относительно реального календаря ... SELECT TO_CHAR(TO_DATE('07-JAN-2002','DD-MON-YY'), 'IW') "New Year" FROM DUAL; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2018, 09:55 |
|
||
|
|

start [/forum/topic.php?fid=52&startmsg=32060351&tid=1883049]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
148ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
23ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 459ms |

| 0 / 0 |
