|
|
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
Народ, подскажите как вычислить номер недели в году. Я что-то не нашел никакой функции ... PS. версия 8i ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2002, 16:25 |
|
||
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
CEIL ((p_date - round(p_date,'YEAR'))/7) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2002, 16:36 |
|
||
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
кажется маска формата ww (в доке есть, проверь) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2002, 16:36 |
|
||
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
Hi TO_CHAR (DATE ,'PARAMETER') Parameter WW Week of the year (1-53) IW Week of the year (1-52, 1-53) ISO standard W Week of month (1-5) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2002, 16:38 |
|
||
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
Все было бы здорово, если бы SELECT TO_CHAR(TO_DATE('07-JAN-2002','DD-MON-YY'), 'WW') "New Year" FROM DUAL; давало вторую неделю, а не первую .. а мне бы нужно номер недели относительно реального календаря ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2002, 16:50 |
|
||
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
Попробуй CEIL ((p_date - next_day(round(p_date,'YEAR'),'Monday'))/7) + 1 ;)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2002, 16:58 |
|
||
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
На самом деле работает Код: plaintext 1. 2. 3. вот только "Воскресенье" или "Sunday" - вещь, зависящая от NLS-а ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2002, 17:27 |
|
||
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
to Trampler: спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2002, 17:45 |
|
||
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
А попробуй: Код: plaintext 1. В 9-ке работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 13:03 |
|
||
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
to Trampler: Твой код даст правильный результат только в этом году. А в следующем - прийдеться менять (а осталось 2.5 месяца). А как узнать номер недели 20.12.2001 - в минус пойдем!!! Надо свою функцию писать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 14:02 |
|
||
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
To Slavik Ты прав, конечно же должен быть TRUNC - Код: plaintext 1. 2. 3. Andrey, Этот вариант правильнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2002, 17:01 |
|
||
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
to Славик > to Trampler: > Твой код даст правильный результат только в этом году. > А в следующем - прийдеться менять (а осталось 2.5 > месяца). А как узнать номер недели 20.12.2001 - в > минус пойдем!!! > Надо свою функцию писать. А вы вообще-то попробовали использовать to_char(<date>, 'IW') ??? Если вы бы попробовали, то убедились, что номер недели определяется не относительно текущего года, а относительно начала года заданного в <date> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 12:56 |
|
||
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
to SAA_ Все классно! Но проверь : 31.12.2002 - возврат 01. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 13:06 |
|
||
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
Мой вариант вроде рабочий, раз никто пока не раскритиковал. Насчет номер недели определяется не относительно текущего года, а относительно начала года заданного в <date> - разве это действительно так? Тогда 01.01.2002 - в 53-й неделе 2001 что-ли? Да и использование to_char(<date>, 'IW') наверняка сделано под Sunday..Saturday а не под Понед..Воскр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 13:16 |
|
||
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
А что проверить влом??? Так сложно??? В документации сказано: IW - Неделя года, в основе лежит стандарт ISO. WW - неделя года. Неделя 1 начинается с первого дня года и продолжается до седьмого дня. Каким образом, недели не всегда начинаются с воскресенья (как принято в США) Используй ISO и никогда у тебя не будет проблем с совместимостями и пр. Всегда можно отмазаться понятием СТАНДАРТ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 14:13 |
|
||
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
to SAA_ Ты наверно не помимаешь. Вопрос: "а мне бы нужно номер недели относительно реального календаря ..." ? Не ISO!!! Какие тут могут быть отмазки? to Trampler, помоему у тебя есть ошибка. to Andrey, проверь этот Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 14:41 |
|
||
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
to Trampler: в твоем коде ошибка: на 01.01.2006 - неделя 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 14:47 |
|
||
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
То Славик Ты прав. Ошибка действительно есть. ИМХО конечно, но лучше использовать SQL, если есть возможность. Специально проверил твою функцию и аналогичный запрос - функция работает примерно в 6 раз медленнее, разве что индекс на нее сделать. И потом, лучше все-таки не использовать в явном виде 'Sunday' или 'Воскресенье' - Код: plaintext 1. 2. R_DATE - столбец в таблице TABLE 30.12.2001 - Воскресенье или Sunday ;) Кстати, может кто-нибудь знает как это написать менее коряво? ;)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 15:26 |
|
||
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
Ну коль до "Sunday" добрались, подскажите, почему Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 16:26 |
|
||
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. разве не работает?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 16:36 |
|
||
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
Твой пример работает, но чето я не пойму почему здесь не хочет? Тогда вопрос с "Sunday", прекрасно решился бы Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2002, 16:52 |
|
||
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
select to_char(to_date('31.12.2002', 'DD.MM.YYYY'), 'WW') from dual возвращает 53 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2002, 16:38 |
|
||
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
Человек просил что-бы '07-JAN-2002' - было второй неделей. SELECT TO_CHAR(TO_DATE('07-JAN-2002','DD-MON-YY'), 'IW') "New Year" FROM DUAL - это и даёт. О чём спор-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2002, 14:29 |
|
||
|
Номер недели!
|
|||
|---|---|---|---|
|
#18+
Насколько я понимаю, проблема в том, что 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, 15:50 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=91&tid=1883049]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 360ms |

| 0 / 0 |
