Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Текущее время с сервера / 25 сообщений из 101, страница 1 из 5
24.04.2015, 14:53
    #38944679
delphi_begin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущее время с сервера
Добрый день. Помогите!

Сервер Firebird 2.5

Есть триггер на таблицу, который списывает в поле NEW.TIME_OF_CREATION=CURRENT_TIME;

Но при вставке записи в таблицу туда попадает время, большее, чем на сервере на 1 час!

Проверял время через CMD ->echo %time% - время верное. Только через сервер.

Скажите, может быть, где то в настройках FB как-то указывается часовой пояс или еще что-то влияющее на обработку текущего время сервера?? Спасибо
...
Рейтинг: 0 / 0
24.04.2015, 14:55
    #38944681
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущее время с сервера
Перезапусти Firebird. И не меняй часовой пояс на ходу.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.04.2015, 15:01
    #38944704
delphi_begin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущее время с сервера
Dimitry Sibiryakov,

Админ только что признался, что менял сегодня часовой пояс. Спасибо, Шерлок)

Там сейчас работает много пользователей. Есть ли какая то возможность исправить это без перезапуска?
...
Рейтинг: 0 / 0
24.04.2015, 15:03
    #38944711
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущее время с сервера
delphi_beginЕсть ли какая то возможность исправить это без перезапуска?
Нет. Можешь высказать за это своё "фи" мелкомягким чудикам, которые насмерть кэшируют
TZOffset в своей RTL.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.04.2015, 15:04
    #38944714
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущее время с сервера
delphi_begin,

Ну пиши в триггере через

Код: plsql
1.
dateadd(-1 hour to current_time)



Хотя лучше перегрузить... Или не забыть исправить после перезагрузки...
...
Рейтинг: 0 / 0
24.04.2015, 15:12
    #38944723
delphi_begin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущее время с сервера
Dimitry Sibiryakov,

Спасибо, но это будет слишком дерзко со стороны пиратов)
...
Рейтинг: 0 / 0
24.04.2015, 15:13
    #38944725
delphi_begin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущее время с сервера
DarkMaster,

Да, ребутнем, спасибо!
...
Рейтинг: 0 / 0
24.04.2015, 15:18
    #38944732
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущее время с сервера
delphi_beginэто будет слишком дерзко со стороны пиратов)
Под Линухом такой фигни вроде бы не наблюдается.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.04.2015, 16:24
    #38944796
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущее время с сервера
Наш поставщик обмена EDI незаметно переехал с датацентра в Польше ещё куда-то, в соседний часовой пояс.
Переезд прошёл "незамеченным" для пользователей, вот только внезапно время всех объектов в базе сдвинулось на час.
Из-за чего робот решил, что все документы были обновлены (ведь время изменилось).
...
Рейтинг: 0 / 0
26.05.2015, 16:22
    #38968945
Fr0sT-Brutal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущее время с сервера
Имхо, жирнейший довод все таймстампы получать и хранить в UTC
...
Рейтинг: 0 / 0
26.05.2015, 16:29
    #38968956
Поручик ·· Ржевский
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущее время с сервера
Fr0sT-BrutalИмхо, жирнейший довод все таймстампы получать и хранить в UTCNLS то всё одно отсутствует
...
Рейтинг: 0 / 0
26.05.2015, 17:38
    #38969059
Fr0sT-Brutal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущее время с сервера
Поручик ·· РжевскийFr0sT-BrutalИмхо, жирнейший довод все таймстампы получать и хранить в UTCNLS то всё одно отсутствует
Не очень понял, что ты имеешь под NLS, но если есть возможность полностью убрать timezone hell - глупо ею не воспользоваться. Не знаю, каким надо быть мазохистом, чтобы лавировать в этом безумии постоянных смен смещений и режимов DST.
P.S. Где проголосовать за CURRENT_UTCTIMESTAMP?
...
Рейтинг: 0 / 0
26.05.2015, 19:08
    #38969154
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущее время с сервера
Fr0sT-BrutalГде проголосовать за CURRENT_UTCTIMESTAMP?
во-первых, не за UTCTIMESTAMP, а TIMESTAMP_UTC. А во-вторых, по уму нужен специальный тип данных.
...
Рейтинг: 0 / 0
26.05.2015, 19:18
    #38969166
Fr0sT-Brutal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущее время с сервера
kdvFr0sT-BrutalГде проголосовать за CURRENT_UTCTIMESTAMP?
во-первых, не за UTCTIMESTAMP, а TIMESTAMP_UTC.
Как мне кажется, ты про тип, а я про сист. переменную. Если не так, то двойное подчеркивание не очень красиво смотрится, но не суть.
Ну а тип это хорошо, но решение будет нестандартным, плюс породит целую кучу проблем вроде "как мне перегнать это время в мое локальное", "как мне сравнить два локальных времени на сервере" и прочее.
...
Рейтинг: 0 / 0
26.05.2015, 19:21
    #38969168
Поручик ·· Ржевский
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущее время с сервера
Я и говорю - без полноценного введения NLS, нефиг даже тужиться
...
Рейтинг: 0 / 0
26.05.2015, 21:30
    #38969231
-
-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущее время с сервера
Корректную работу с UTC, в принципе, можно реализовать самому. Определить домен, создать 2 функции для перевода в локальное время и обратно (причём для каждой базы можно гибко задавать часовой пояс (например через переменную БД), если вдруг база на хостинге). Работы на несколько часов.

Для FB конечно перспективней если в нём будет встроенная реализация.
...
Рейтинг: 0 / 0
26.05.2015, 21:47
    #38969242
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущее время с сервера
-Работы на несколько часов.
А подключить стандартную UDf GetExactTimestampUTC - работы на несколько секунд.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
26.05.2015, 23:05
    #38969286
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущее время с сервера
Fr0sT-BrutalКак мне кажется, ты про тип, а я про сист. переменную.
я про стиль именования. CURRENT_UTCTIMESTAMP - это запредельный звездец. А CURRENT_TIMESTAMP_UTC - это прекрасно читаемое имя, особенно уже при наличии CURRENT_TIMESTAMP. Если тебя корежит от двух подчеркиваний, то почему не корежит от одного?
...
Рейтинг: 0 / 0
01.06.2015, 10:13
    #38972978
Fr0sT-Brutal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущее время с сервера
kdvCURRENT_UTCTIMESTAMP - это запредельный звездец.
Дело вкуса...
А CURRENT_TIMESTAMP_UTC - это прекрасно читаемое имя, особенно уже при наличии CURRENT_TIMESTAMP. Если тебя корежит от двух подчеркиваний, то почему не корежит от одного?
Единственное, что смущает - вроде бы больше идентификаторов с двумя _ нет.
Корректную работу с UTC, в принципе, можно реализовать самому. Определить домен, создать 2 функции для перевода в локальное время и обратно (причём для каждой базы можно гибко задавать часовой пояс (например через переменную БД), если вдруг база на хостинге). Работы на несколько часов.
По-хорошему, часовой пояс - это свойство клиента, а не базы.
Я и говорю - без полноценного введения NLS, нефиг даже тужиться
А еще лучше - без светлого будущего во всем мире нефиг тужиться, а то пашешь-пашешь, а потом вдруг апокалипсец! И все усилия насмарку.
В идеале дата должна быть жестко задана в инвариантном UTC + опциональный часовой сдвиг, д.б. полный набор функций для работы как с абсолютным, так и локальным значением не только в SQL, но также и на клиентах. Но слона надо есть по кускам.
...
Рейтинг: 0 / 0
01.06.2015, 10:26
    #38972991
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущее время с сервера
Fr0sT-BrutalПо-хорошему, часовой пояс - это свойство клиента, а не базы.
это не исключает времени в UTC, про которое ты сам сказал дальше.

я приведу простейший пример, который иллюстрируется гулго-календарем:
- перелет из локального часового пояса в другой часовой пояс.
мы имеем:
1. локальное время клиента (то, где он находится)
2. время вылета с указанием часового пояса
3. время прилета с указанием часового пояса

Причем, все это означает, что часовой пояс клиента - это не просто "часовой пояс У клиента", а именно часовой пояс, который клиент сообщает серверу для получения TIMESTAMP в его локальном времени.
...
Рейтинг: 0 / 0
01.06.2015, 10:33
    #38973005
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущее время с сервера
Fr0sT-Brutal,

тут мало знать часовой пояс клиента. Нужно ещё знать и часовой пояс сервера иначе не понятно что там на клиенте добавлять. А сервер может находится где угодно. Можно конечно хранить всё время в 0 поясе, но текущее время так всё равно не определишь. Таким образом нужно полностью поддерживать новый тип данных, о чём даже тикет в трекере есть.
...
Рейтинг: 0 / 0
01.06.2015, 11:39
    #38973080
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущее время с сервера
Симонов Денис,

если в БД время хранится в UTC, то часовой пояс сервера не нужно знать, чтобы "добавлять" что-то там к клиенту. Я же пример с гуглокалендарем не зря привел. Гуглокалендарь приводит время к локальному именно относительно клиента. Свое время или таймзона ему ни к чему совершенно.
А вот в ФБ "текущее время сервера" достаточно в UTC, и оно может быть преобразовано к локальному времени клиента, если клиент серверу перешлет свою timezone.

мне вот что-то не удается придумать, зачем серверу нужно знать свое локальное время без UTC. Данные мы всегда получаем в сторону клиента, и при "всеобщем UTC" значение имеет только часовой пояс клиента.
...
Рейтинг: 0 / 0
01.06.2015, 11:56
    #38973102
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущее время с сервера
kdv,

Даже если сделать для получения текущего времени в UTC отдельную контекстную переменную, то по идее надо сделать и контекстную переменную возвращающую текущий часовой пояс сервера (хотя бы для справки).

Да и не плохо бы знать что за время на сервак запихнули, было ли оно приведено к UTC или пришло как есть.

Если определён отдельный тип данных то клиент FB сам поймёт надо ли преобразовывать время или оставить как есть без вызова дополнительных функций.
...
Рейтинг: 0 / 0
01.06.2015, 12:12
    #38973119
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущее время с сервера
Симонов Денисто по идее надо сделать и контекстную переменную возвращающую текущий часовой пояс сервера
с этим не спорю, но как я уже сказал, я не смог придумать использование такой фичи. В контексте "UTC+часовой пояс клиента" это было бы совершенно бесполезной информацией.
Например, текущий CURRENT_TIMESTAMP предполагает, что часовой пояс клиента и сервера идентичен. И различия этих часовых поясов порождает проблемы. Но если у нас есть UTC, и у меня сервер в UK, а я сижу в Москве, и знаю свой часовой пояс, зачем мне локальное время сервера? Придумай пример :-)
...
Рейтинг: 0 / 0
01.06.2015, 12:15
    #38973122
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущее время с сервера
не надо ничего придумывать.
надо сделать как у "старших братьев".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Текущее время с сервера / 25 сообщений из 101, страница 1 из 5
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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