У меня есть много баз данных на одном сервере, представляющих разные часовые пояса в каждом из них (тихоокеанском, горном, центральном и восточном). Сейчас мои программы используют такие вещи, как 'NOW'
и CURRENT_TIMESTAMP
, чтобы получить текущее время для записей. Это проблема.Изменение CURRENT_TIMESTAMP для базы данных Firebird
Данные синхронизируются с отдельных компьютеров на этот центральный сервер с использованием SymmetricDS. Однако у меня возникла проблема, что программы, запущенные на этом центральном сервере, написаны так, как если бы они были локальными в офисе. Это означает, что когда он требует метки времени, он делает это в часовом поясе сервера, который может не представлять свой офис. В результате в результате происходит неразрывность данных.
Помимо прохождения программ и перезаписи каждой ситуации, использующей текущее время, мы бы скорее нашли способ представлять время по-разному в каждой базе данных ... как-то компенсировать часовой пояс в каждой базе данных отдельно.
Сделав столько, сколько я могу найти по этой теме, какие у меня варианты?
Если вы знаете часовой пояс, вы можете сохранить его в базе данных и использовать 'dateadd (hour, -cast (: tz_hour как integer), current_timestamp);' –
Дилемма заключается в том, что мы хотим изменить все время связанных с функциями и контекстными переменными в Firebird, чтобы сделать это для нас. У нас есть огромное количество кода, и замена его повсюду займет значительное количество времени: \ – user2085722
К сожалению, нет реальной возможности, за исключением того, что, возможно, ваш сервер работает в UTC, поэтому все системы, по крайней мере, используют одну и ту же дату (но это может по-прежнему разрушать хаос, если клиенты вставляют время или временную метку в локальный часовой пояс). –