powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите с датами разобратся...
5 сообщений из 5, страница 1 из 1
Помогите с датами разобратся...
    #32165876
AlexNS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть Oracle 9.2. Стоит на Линюхе. На сервере регистряца события с датой/временем по гринвичу. Мне надо показывать людям с переводом в местное время С УЧЕТОМ ЛЕТНЕГО/ЗИМНЕГО периода. Собсно в свой часовой пояс переводится легко а вот метод простого и быстрого(по возможности встроенного в Ораклю) учета летнего/зимнего времени найти не могу. Мона конечно ручками процу написать - но думаю что быду делать свой велосипед кривой. А наверняка в Оракле под это дело Мерседес имеется ?
...
Рейтинг: 0 / 0
Помогите с датами разобратся...
    #32165979
Фотография hinotf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для типов ..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
...
Рейтинг: 0 / 0
Помогите с датами разобратся...
    #32166116
AlexNS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Про эти новые типы дат в 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.
...
Рейтинг: 0 / 0
Помогите с датами разобратся...
    #32166171
Фотография hinotf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тоже не очень в этом разбираюсь, НО! есть специальный тип данных 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

по-моему, использование этого типа очень оправдано в вашем случае
...
Рейтинг: 0 / 0
Помогите с датами разобратся...
    #32166181
Фотография hinotf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PS по проведённым мной экспериментам, переход на летнее/зимнее время учитывается, то есть вообще ничего, кроме правильного выставленного часового пояса на сервере и клиенте, делать не надо
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите с датами разобратся...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]