|
|
|
Помогите с датами разобратся...
|
|||
|---|---|---|---|
|
#18+
Есть Oracle 9.2. Стоит на Линюхе. На сервере регистряца события с датой/временем по гринвичу. Мне надо показывать людям с переводом в местное время С УЧЕТОМ ЛЕТНЕГО/ЗИМНЕГО периода. Собсно в свой часовой пояс переводится легко а вот метод простого и быстрого(по возможности встроенного в Ораклю) учета летнего/зимнего времени найти не могу. Мона конечно ручками процу написать - но думаю что быду делать свой велосипед кривой. А наверняка в Оракле под это дело Мерседес имеется ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2003, 11:23 |
|
||
|
Помогите с датами разобратся...
|
|||
|---|---|---|---|
|
#18+
Для типов ..with timezone переход на летнее-зимнее время учитыватеся форматными масками, например SELECT to_char(to_timestamp_tz('27.10.2002 02:00:00 Europe/Moscow MSK', 'DD.MM.RRRR HH24:MI:SS TZR TZD') - to_timestamp_tz('27.10.2002 02:00:00 Europe/Moscow MSD', 'DD.MM.RRRR HH24:MI:SS TZR TZD')) FROM dual ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2003, 12:23 |
|
||
|
Помогите с датами разобратся...
|
|||
|---|---|---|---|
|
#18+
Про эти новые типы дат в 9 ке я так особо ничего не знаю. Вот так сходу зная что такое дата, и то что есть тип TIMESTAMP WITH TIME ZONE - но реально с ним не работав, никак не могу придумать как бы это дело срастить. Можно я вопрос конкретизирую. Подскажи если не лень : У меня есть переменная типа дата. Она имеет значение например равное 01/06/2003 13:00. Это время события по гринвичу. Я знаю что клиент сидит в Москве и разница с гринвичем 3 часа. Как бы мне выбирать эту переменную так что бы Оракле показал мне дату и время этого события по Москве и при этом учел что событие произошло летом (когда разница по времени в Москве и по гринвичу составляет 4 часа). То есть - 01/06/2003 17:00. А если например событие произошло 01/01/2003 13:00(зимой) то что бы в результате получилось 01/06/2003 16:00. И очень желательно что бы результат имел тип Date. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2003, 13:37 |
|
||
|
Помогите с датами разобратся...
|
|||
|---|---|---|---|
|
#18+
Я тоже не очень в этом разбираюсь, НО! есть специальный тип данных TIMESTAMP WITH LOCAL TIME ZONE. В базе данных он всегда хранит дату с тем часовым поясом, который установлен на сервере (ALTER DATABASE SET TIME_ZONE = 'Europe/London') например, а выводит, приводя к часовому поясу клиента (ALTER SESSION SET TIME_ZONE = 'Europe/Moscow') Полезные команды, помимо уже упомянутых выше установок часовых поясов: select dbtimezone from dual select sessiontimezone from dual SELECT * FROM v$timezone_names по-моему, использование этого типа очень оправдано в вашем случае ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2003, 14:19 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32165979&tid=1990407]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
170ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 463ms |

| 0 / 0 |
