|
|
|
Серверное время и часовые пояса
|
|||
|---|---|---|---|
|
#18+
nodir_azam, . У вас именно таймзоны (timezone) или разницы времён (timezone offset)? А то ведь есть ещё зимнее-летнее время, и на стыке риск выполнить работу дважды за ночь или не выполнить вовсе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2010, 19:09 |
|
||
|
Серверное время и часовые пояса
|
|||
|---|---|---|---|
|
#18+
nodir_azamЁш, реальная ситуация. UTC+02 - серверное время UTC+03 - время пользователя время выполнения задания 20-00 к примеру, а сейчас 18-00 к примеру по UTC+03. На серваке во время установки задания 16-00, следовательно, задание со временем выполнения 20-00 по UTC+03 надо написать в 18-00 по UTC+02. Чтобы робот выполнил задание в 18-00 . Как быть? Время передается как параметр в функцию.Если на серваке время 16 UTC +2, а на станции 18 UTC+3, то где-то на час сбито время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2010, 21:03 |
|
||
|
Серверное время и часовые пояса
|
|||
|---|---|---|---|
|
#18+
Warstone905 немного не понимает идеологию работы с Postgres ... да, после более внимательного прочтение главы "Date/Time Types" мне стало яснее пожалуй ТС стоит сделать тоже самое ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 09:03 |
|
||
|
Серверное время и часовые пояса
|
|||
|---|---|---|---|
|
#18+
По ходу мне кажется я нашел решение. При вставке перевожу дату в UTC. При выборке роботом джобов оставляю серверное время. Вроде пока все так как надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 11:10 |
|
||
|
Серверное время и часовые пояса
|
|||
|---|---|---|---|
|
#18+
То есть вы принципиально не читаете что вам пишут. А зачем тогда эта тема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 13:09 |
|
||
|
Серверное время и часовые пояса
|
|||
|---|---|---|---|
|
#18+
Warstone, О чем Вы? Извините если я что-то упустил. Перечитаю еще раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 13:30 |
|
||
|
Серверное время и часовые пояса
|
|||
|---|---|---|---|
|
#18+
Warstone, Вы о сбитом времени? А Помоему все нормально. http://www.worldtimezone.com/index_ru.php ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 13:34 |
|
||
|
Серверное время и часовые пояса
|
|||
|---|---|---|---|
|
#18+
iv_an_ru, Вариант с оффсетом тоже привлекателен. То есть не указывая определенной даты, говорить через час, день, три часа или пять суток? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 13:58 |
|
||
|
Серверное время и часовые пояса
|
|||
|---|---|---|---|
|
#18+
nodir_azamWarstone, Вы о сбитом времени? А Помоему все нормально. http://www.worldtimezone.com/index_ru.phpЯ не о сбитом времени я о том, что если вы в Москве сейчас 16 часов, вы заносите 17 часов, а на сервере 5 часов, то для сервера это будет 6 часов. То есть вы тупо делаете INSERT now() + INTERVAL '1 hour' и он будет "+1 hour" и для сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2010, 19:08 |
|
||
|
Серверное время и часовые пояса
|
|||
|---|---|---|---|
|
#18+
nodir_azamВариант с оффсетом тоже привлекателен. То есть не указывая определенной даты, говорить через час, день, три часа или пять суток? Вы не поняли. Моя таймзона --- Новосибирск, NOVST, UTC+06:00 или UTC+07:00, в зависимости от зимнего/летнего времени. Пусть для простоты сервер живёт в UTC. Если я сейчас, летом, скажу, что задачу надо сделать первого января в 14:00 по местному, то надо, чтоб сервер понял, что tmiezone offset для NOVST будет в этот день +360 минут, а не +420 минут как сейчас, то есть если задача сегодня, то надо запомнить 07:00 UTC, а если в январе, то 08:00 UTC. А при создании, скажем, ежедневной задача в 02:30 по местному ваша аппликуха вообще должна отдельно уточнить у юзера поведение в переходные дни. Ну а если сервер должен при этом уметь сам жить в любой таймзоне, а не в UTC, то будет вообще цирк. Тогда разность таймзон может достигать 28 часов, и с переходными датами получается полный цирк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2010, 10:58 |
|
||
|
Серверное время и часовые пояса
|
|||
|---|---|---|---|
|
#18+
iv_an_ru, Да это понятно. Пока не знаю как сделать для дней, в которые меняется время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2010, 11:38 |
|
||
|
Серверное время и часовые пояса
|
|||
|---|---|---|---|
|
#18+
Неужели нет шедулера для постгрес? Может не писать ничего, а просто воспользоваться нормальным шедулером? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2010, 11:39 |
|
||
|
Серверное время и часовые пояса
|
|||
|---|---|---|---|
|
#18+
nodir_azamiv_an_ru, Да это понятно. Пока не знаю как сделать для дней, в которые меняется время.Вы тролль? Сколько раз вам повторить что все сделано командой Postgres за вас? Шедуллер есть pg_agent. Но не сильно рекомендуется им пользоваться. Обычно пользуются cron'ом и он всех устраивает. Проблема только в том, что он под никсами (для виндоузятников) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2010, 12:17 |
|
||
|
Серверное время и часовые пояса
|
|||
|---|---|---|---|
|
#18+
Warstone, нет не тролль :) Вы читали пост выше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2010, 13:09 |
|
||
|
Серверное время и часовые пояса
|
|||
|---|---|---|---|
|
#18+
nodir_azam, В общем предлагаю закрыть thread, так как он теряет смысл. Скрипт работает, время покажет что будет в переходе на летнее/зимнее время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2010, 13:11 |
|
||
|
Серверное время и часовые пояса
|
|||
|---|---|---|---|
|
#18+
nodir_azamWarstone, нет не тролль :) Вы читали пост выше?Читал. И я не понимаю зачем приводить к +0 UTC, если тут прекрасно справляется механизм по умлочанию. Может и я не прав... Распишите еще раз задачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2010, 16:28 |
|
||
|
Серверное время и часовые пояса
|
|||
|---|---|---|---|
|
#18+
WarstoneИ я не понимаю зачем приводить к +0 UTC, если тут прекрасно справляется механизм по умлочанию. Может и я не прав... Распишите еще раз задачу. Интересно, какие тут могут быть резоны, я сам могу припомнить только один вариант, когда имеет смысл хранить время по Гринвичу - если требуется конвертация в другую СУБД (или зачем-то надо парсить дамп скриптом, хотя это сильно на любителя). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2010, 18:31 |
|
||
|
Серверное время и часовые пояса
|
|||
|---|---|---|---|
|
#18+
Warstone, Например, пользователь в Москве, вводит время джоба. Когда идет вставка на сервер, постгрес приводит время, ко времени сервера. Если переменная 21:00 по UTC+03, он ставит по UTC+02 в 21:00. Это время некорректное для джоба, надо в 21:00 по UTC+03 вставлять. Может я что неправильно делаю? Когда приводим переменную (21:00) к UTC, а выборку делаем в UTC+02, то все как надо работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2010, 00:37 |
|
||
|
Серверное время и часовые пояса
|
|||
|---|---|---|---|
|
#18+
Давайте разбираться. Для начала я привету тест: Код: plaintext 1. 2. Код: plaintext 1. 2. 3. 4. Тестируем дальше: Код: plaintext 1. 2. Дата во внутреннем формате и Дата в текстовом выражении. Теперь поменяем TimeZone: Код: plaintext 1. 2. 3. То есть если вы в Москве прибавите один час к now() и запишите это в колонку с типом timestamp tz , то на сервере это будет так-же now() + 1 час, но во времени сервера. Все эти махинации я сделал что-бы объяснить одну вещь: В случае тасков, задания, которые надо выполнить можно брать путем Код: plaintext Надеюсь данный опус объяснил вам что ничего никуда конвертировать не надо. Вносите ту дату, которую выбрал пользователь, на кроне или что вы будите запускать - время будет с учетом GMT разницы между клиентами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2010, 02:42 |
|
||
|
Серверное время и часовые пояса
|
|||
|---|---|---|---|
|
#18+
Да, Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2010, 02:43 |
|
||
|
Серверное время и часовые пояса
|
|||
|---|---|---|---|
|
#18+
nodir_azamWarstone, Например, пользователь в Москве, вводит время джоба. Когда идет вставка на сервер, постгрес приводит время, ко времени сервера. Если переменная 21:00 по UTC+03, он ставит по UTC+02 в 21:00. Это время некорректное для джоба, надо в 21:00 по UTC+03 вставлять. Может я что неправильно делаю? Когда приводим переменную (21:00) к UTC, а выборку делаем в UTC+02, то все как надо работает.А вообще, в вашем случае полезно еще спросить Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2010, 02:45 |
|
||
|
Серверное время и часовые пояса
|
|||
|---|---|---|---|
|
#18+
Пардон, читать как +3 на клиенте, хотя вы ожидаете +2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2010, 02:46 |
|
||
|
Серверное время и часовые пояса
|
|||
|---|---|---|---|
|
#18+
Warstone, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. now startdt textdatetime2010-06-13 08:09:13.578234+02 2010-06-13 08:07:53.308389+02 2010-06-13 10:07:53.308389+04 Приводить к UTC не надо. Так тоже работает. Код: plaintext 1. Делаем выборку Код: plaintext 1. now startdt textdatetime2010-06-13 08:22:13.847904+02 2010-06-13 08:07:53.308389+02 2010-06-13 10:07:53.308389+042010-06-13 08:22:13.847904+02 2010-06-13 08:21:00+02 2010-06-13 10:21:00 А вот когда делать set session timezone to '+4'? летом? А зимой что ставить? Или можно просто ставить set session timezone to 'Europe/Moscow'? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2010, 10:30 |
|
||
|
Серверное время и часовые пояса
|
|||
|---|---|---|---|
|
#18+
nodir_azamА вот когда делать set session timezone to '+4'? летом? А зимой что ставить? Или можно просто ставить set session timezone to 'Europe/Moscow'?А set session timezone делать вообще не надо. По умолчанию клиент берет таимзону из настроек ОС, то есть все по умолчанию отслеживаться будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2010, 15:08 |
|
||
|
Серверное время и часовые пояса
|
|||
|---|---|---|---|
|
#18+
Warstone, Тогда вставка будет неправильной, если не делать set session timezone, нет? Опять Вы меня запутали :). Вставим 2010-06-13 10:21:00 и на сервере будет 2010-06-13 10:21:00, а не 2010-06-13 08:21:00. Я не прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2010, 16:38 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=36684711&tid=1998141]: |
0ms |
get settings: |
11ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
75ms |
get tp. blocked users: |
2ms |
| others: | 248ms |
| total: | 414ms |

| 0 / 0 |
