Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 определить день  [new]
yodgik
Member

Откуда:
Сообщений: 314
подскажите как определить какой по счёту день ?
13 мар 07, 09:48    [3890304]     Ответить | Цитировать Сообщить модератору
 Re: определить день  [new]
Exotic
Member

Откуда: Новороссийск
Сообщений: 322
В году:
select trunc(sysdate)-trunc(sysdate,'year') from dual
В месяце:
select trunc(sysdate)-trunc(sysdate,'month') from dual
В неделе:
select trunc(sysdate)-trunc(sysdate,'ww') from dual

---------------------------------------------
OracleManiacs
13 мар 07, 09:51    [3890318]     Ответить | Цитировать Сообщить модератору
 Re: определить день  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18483
Exotic
В году:
select trunc(sysdate)-trunc(sysdate,'year') from dual
tst> select to_char(sysdate, 'ddd') from dual;

TO_
---
072
Exotic
В месяце:
select trunc(sysdate)-trunc(sysdate,'month') from dual
tst> select to_char(sysdate, 'dd') from dual;

TO
--
13
13 мар 07, 09:56    [3890353]     Ответить | Цитировать Сообщить модератору
 Re: определить день  [new]
Exotic
Member

Откуда: Новороссийск
Сообщений: 322
Вячеслав Любомудров
Забыл, сафсем забыл...
13 мар 07, 09:58    [3890367]     Ответить | Цитировать Сообщить модератору
 Re: определить день  [new]
ua.maks
Member

Откуда: Киев
Сообщений: 262
yodgik
подскажите как определить какой по счёту день ?

от чего отсчитывать собрались, от рождеста христова? :)
13 мар 07, 09:58    [3890370]     Ответить | Цитировать Сообщить модератору
 Re: определить день  [new]
mnick
Member

Откуда: Москва
Сообщений: 396
В догонку :-)
Exotic
В неделе:
select trunc(sysdate)-trunc(sysdate,'ww') from dual

select to_char(sysdate,'d') from dual
13 мар 07, 10:00    [3890387]     Ответить | Цитировать Сообщить модератору
 Re: определить день  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18483
А вот это уже NLS-зависимо
13 мар 07, 10:02    [3890399]     Ответить | Цитировать Сообщить модератору
 Re: определить день  [new]
mnick
Member

Откуда: Москва
Сообщений: 396
Вячеслав Любомудров
Exotic
В месяце:
select trunc(sysdate)-trunc(sysdate,'month') from dual
tst> select to_char(sysdate, 'dd') from dual;

TO
--
13

SQL> alter session set nls_calendar = 'Arabic Hijrah';

Session altered

SQL> select to_char(sysdate, 'dd') from dual;

TO_CHAR(SYSDATE,'DD')
---------------------
23
Тоже NLS зависимо ;-)
13 мар 07, 10:14    [3890452]     Ответить | Цитировать Сообщить модератору
 Re: определить день  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
Вячеслав Любомудров
А вот это уже NLS-зависимо
М... А Ваше решение?
13 мар 07, 10:16    [3890463]     Ответить | Цитировать Сообщить модератору
 Re: определить день  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18483
В общем случае, все NLS-зависимо
Но, как правило, с этим (кроме номера дня) проще. По крайней мере, мне так думается
13 мар 07, 10:17    [3890471]     Ответить | Цитировать Сообщить модератору
 Re: определить день  [new]
Elic
Member

Откуда:
Сообщений: 29979
Jannny
Вячеслав Любомудров
А вот это уже NLS-зависимо
М... А Ваше решение?
Избито уже: Julian date + mod
13 мар 07, 10:19    [3890484]     Ответить | Цитировать Сообщить модератору
 Re: определить день  [new]
yodgik
Member

Откуда:
Сообщений: 314
ua.maks
yodgik
подскажите как определить какой по счёту день ?

от чего отсчитывать собрались, от рождеста христова? :)

Зачем, с начала года. =)
13 мар 07, 10:19    [3890488]     Ответить | Цитировать Сообщить модератору
 Re: определить день  [new]
Exotic
Member

Откуда: Новороссийск
Сообщений: 322
Elic
Jannny
Вячеслав Любомудров
А вот это уже NLS-зависимо
М... А Ваше решение?
Избито уже: Julian date + mod

Также можно в TO_CHAR подставлять необходимые значения переменных NLS
13 мар 07, 11:16    [3890856]     Ответить | Цитировать Сообщить модератору
 Re: определить день  [new]
ua.maks
Member

Откуда: Киев
Сообщений: 262
select extract(day from sysdate) from dual;
13 мар 07, 11:19    [3890887]     Ответить | Цитировать Сообщить модератору
 Re: определить день  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18483
Exotic
Также можно в TO_CHAR подставлять необходимые значения переменных NLS
Кроме тех, от которых вся эта шняга и зависит :(
13 мар 07, 11:20    [3890894]     Ответить | Цитировать Сообщить модератору
 Re: определить день  [new]
Elic
Member

Откуда:
Сообщений: 29979
Exotic
Elic
Избито уже: Julian date + mod
Также можно в TO_CHAR подставлять необходимые значения переменных NLS
Ты сначала попробуй
13 мар 07, 11:23    [3890920]     Ответить | Цитировать Сообщить модератору
 Re: определить день  [new]
Exotic
Member

Откуда: Новороссийск
Сообщений: 322
Elic
Exotic
Elic
Избито уже: Julian date + mod
Также можно в TO_CHAR подставлять необходимые значения переменных NLS
Ты сначала попробуй
Попробовал, получилось:
SQL> alter session set nls_calendar = 'Arabic Hijrah';

Session altered.

SQL> select to_char(sysdate, 'dd') from dual;

TO_CHAR(SYSDATE,'DD')
---------------------------------------------------------------------------
23

SQL> select to_char(sysdate, 'dd','NLS_CALENDAR=Gregorian') from dual;

TO_CHAR(SYSDATE,'DD','NLS_CALE
---------------------------------------------------------------------------
13
13 мар 07, 11:38    [3891016]     Ответить | Цитировать Сообщить модератору
 Re: определить день  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Имхо, тему в фак пора.. Всплывает нечасто, но .. сколько удивления
13 мар 07, 11:39    [3891026]     Ответить | Цитировать Сообщить модератору
 Re: определить день  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18483
Exotic
Попробовал, получилось:
Теперь попробуй для недели, который зависит от NLS_TERRITORY
13 мар 07, 11:44    [3891047]     Ответить | Цитировать Сообщить модератору
 Re: определить день  [new]
Elic
Member

Откуда:
Сообщений: 29979
Exotic
Elic
Exotic
Elic
Избито уже: Julian date + mod
Также можно в TO_CHAR подставлять необходимые значения переменных NLS
Ты сначала попробуй
Попробовал, получилось:
Вникни сперва в тему, получательщик
to_char(sysdate,'d')
13 мар 07, 11:44    [3891052]     Ответить | Цитировать Сообщить модератору
 Re: определить день  [new]
Exotic
Member

Откуда: Новороссийск
Сообщений: 322
По сути то смысла в этой подстановке нет, потому что в другом регионе, в другой стране, в другом мире ответ на вопрос "какой по счёту день?" может быть отличным от нашего.

---------------------------------------------
OracleManiacs
13 мар 07, 12:44    [3891582]     Ответить | Цитировать Сообщить модератору
 Re: определить день  [new]
Elic
Member

Откуда:
Сообщений: 29979
Exotic
По сути то смысла в этой подстановке нет, потому что в другом регионе, в другой стране, в другом мире ответ на вопрос "какой по счёту день?" может быть отличным от нашего.
Типа пытаешься состроить хорошую мину при плохой игре? :)
Ответ на вопрос "хочу, чтобы понедельник независимо от окружения был N+1, а воскресенье - N+7" есть и он однозначен независимо от страны. И это не 'd' :)
13 мар 07, 13:02    [3891716]     Ответить | Цитировать Сообщить модератору
 Re: определить день  [new]
Exotic
Member

Откуда: Новороссийск
Сообщений: 322
Elic
Exotic
По сути то смысла в этой подстановке нет, потому что в другом регионе, в другой стране, в другом мире ответ на вопрос "какой по счёту день?" может быть отличным от нашего.
Типа пытаешься состроить хорошую мину при плохой игре? :)
Ответ на вопрос "хочу, чтобы понедельник независимо от окружения был N+1, а воскресенье - N+7" есть и он однозначен независимо от страны. И это не 'd' :)
Тады чего й енто вам не понравились мои первые варианты?
SQL> alter session set nls_territory='AMERICA';

Session altered.

SQL> select to_char(sysdate, 'd') from dual;

TO_CHAR(SYSDATE,'D')
---------------------------------------------------------------------------
3

SQL> select trunc(sysdate)-trunc(sysdate,'ww')+1 from dual;

TRUNC(SYSDATE)-TRUNC(SYSDATE,'
------------------------------
                             2

SQL> select trunc(sysdate)-trunc(sysdate,'month')+1 from dual;

TRUNC(SYSDATE)-TRUNC(SYSDATE,'
------------------------------
                            13
13 мар 07, 13:45    [3892048]     Ответить | Цитировать Сообщить модератору
 Re: определить день  [new]
Elic
Member

Откуда:
Сообщений: 29979
Exotic
Elic
Ответ на вопрос "хочу, чтобы понедельник независимо от окружения был N+1, а воскресенье - N+7" есть и он однозначен независимо от страны. И это не 'd' :)
Тады чего й енто вам не понравились мои первые варианты?
А у тебе не было ещё вариантов по этому поводу, тем более правильных.
Exotic
SQL> select to_char(sysdate, 'd') from dual;
Фуфло. Почему так не надо - избитая тема.
Exotic
SQL> select trunc(sysdate)-trunc(sysdate,'ww')+1 from dual;
Тоже фуфло. Ибо магия текущего года. RTFM IW
13 мар 07, 14:01    [3892126]     Ответить | Цитировать Сообщить модератору
 Re: определить день  [new]
Exotic
Member

Откуда: Новороссийск
Сообщений: 322
Elic
Тоже фуфло.
Ваши варианты?
13 мар 07, 14:24    [3892272]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить