Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Разный часовой пояс для двух баз на одном сервере  [new]
Latuk
Member

Откуда: N 54°38', E 037°35'
Сообщений: 7310
Возможно ли?
7 авг 12, 12:39    [12974374]     Ответить | Цитировать Сообщить модератору
 Re: Разный часовой пояс для двух баз на одном сервере  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Эээ. У базы нет часовых поясов.
Вопрос про getdate() что ли?
7 авг 12, 12:41    [12974397]     Ответить | Цитировать Сообщить модератору
 Re: Разный часовой пояс для двух баз на одном сервере  [new]
Latuk
Member

Откуда: N 54°38', E 037°35'
Сообщений: 7310
есть две бвзы в разных часовых поясах
сервера уплотняются - вторая переезжает на серевер к первой ,
но пользователи остаются в своем часовом поясе.
т.е. getdate() должно выдавать разное время в разных базах (без модификации кода - запросы захардкожены в приложении)
Придется тавить доп инстанс сервера?
7 авг 12, 12:50    [12974512]     Ответить | Цитировать Сообщить модератору
 Re: Разный часовой пояс для двух баз на одном сервере  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Latuk
есть две бвзы в разных часовых поясах
сервера уплотняются - вторая переезжает на серевер к первой ,
но пользователи остаются в своем часовом поясе.
т.е. getdate() должно выдавать разное время в разных базах (без модификации кода - запросы захардкожены в приложении)
Придется тавить доп инстанс сервера?
Да, боюсь, разные инстансы не спасут. Время-то системное берется.
7 авг 12, 12:51    [12974531]     Ответить | Цитировать Сообщить модератору
 Re: Разный часовой пояс для двух баз на одном сервере  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
Latuk
есть две бвзы в разных часовых поясах
сервера уплотняются - вторая переезжает на серевер к первой ,
но пользователи остаются в своем часовом поясе.
т.е. getdate() должно выдавать разное время в разных базах (без модификации кода - запросы захардкожены в приложении)
Придется тавить доп инстанс сервера?
Базы, это просто данные, для них нет понятия времени. Это всё равно что сказать - для чётных байт на диске пусть будет одно время, для нечётных другое.

Для инстансов тоже нельзя установить время. Нужно ставить другой сервер.
7 авг 12, 12:58    [12974605]     Ответить | Цитировать Сообщить модератору
 Re: Разный часовой пояс для двух баз на одном сервере  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Latuk,

Какая версия сервера?
7 авг 12, 12:59    [12974614]     Ответить | Цитировать Сообщить модератору
 Re: Разный часовой пояс для двух баз на одном сервере  [new]
Jovanny
Member

Откуда:
Сообщений: 1195
Мне кажется, тут нужно переписывать логику и вместо datetime, GETDATE() использовать datetimeoffset, SYSDATETIMEOFFSET().
7 авг 12, 13:05    [12974665]     Ответить | Цитировать Сообщить модератору
 Re: Разный часовой пояс для двух баз на одном сервере  [new]
Jovanny
Member

Откуда:
Сообщений: 1195
Или все вызовы типа GETDATE(), SYSDATETIME() заменить на пользовательские функции.
7 авг 12, 13:09    [12974707]     Ответить | Цитировать Сообщить модератору
 Re: Разный часовой пояс для двух баз на одном сервере  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
Jovanny
Мне кажется, тут нужно переписывать логику

Latuk
без модификации кода - запросы захардкожены в приложении
7 авг 12, 14:08    [12975264]     Ответить | Цитировать Сообщить модератору
 Re: Разный часовой пояс для двух баз на одном сервере  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Определить для базы оффсет в виде UDF. Написать скрипт на создание триггеров на INSERT, UPDATE которые бы апдейтили поля с типом datetime используя UDF.
7 авг 12, 14:11    [12975284]     Ответить | Цитировать Сообщить модератору
 Re: Разный часовой пояс для двух баз на одном сервере  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
pkarklin
Определить для базы оффсет в виде UDF. Написать скрипт на создание триггеров на INSERT, UPDATE которые бы апдейтили поля с типом datetime используя UDF.
А с запросами с клиента, в которых getdate() зафигачен, что делать?
7 авг 12, 14:14    [12975308]     Ответить | Цитировать Сообщить модератору
 Re: Разный часовой пояс для двух баз на одном сервере  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
pkarklin
Определить для базы оффсет в виде UDF. Написать скрипт на создание триггеров на INSERT, UPDATE которые бы апдейтили поля с типом datetime используя UDF.
У ТС именно getdate() должна выдавать разные значения...
"В базах", как он говорит, хотя и непонятно, что это такое.
7 авг 12, 14:30    [12975439]     Ответить | Цитировать Сообщить модератору
 Re: Разный часовой пояс для двух баз на одном сервере  [new]
Latuk
Member

Откуда: N 54°38', E 037°35'
Сообщений: 7310
Есть приложение - работает с базой.
Внутри приложения запросы к базе
в запросах getdate()
сейчас приложения на разных серверах с разным часовым поясом
хотя чтобы базы крутились на одном сервере, но чтобы время осталось как сейчас.
7 авг 12, 14:44    [12975550]     Ответить | Цитировать Сообщить модератору
 Re: Разный часовой пояс для двух баз на одном сервере  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Latuk,

Поднимайте на одном сервере две виртуалки.
7 авг 12, 14:46    [12975573]     Ответить | Цитировать Сообщить модератору
 Re: Разный часовой пояс для двух баз на одном сервере  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
Latuk
Внутри приложения запросы к базе
К базе нельзя сделать запрос, запросы делают к серверу. Я даже не могу представить синтаксис запроса к базе. select 1 as ID, getdate() as order_date - это запрос к какой базе данных???

Непонятно, кому и как в голову могло придти такое желание. Это как мой пример с разными датами для чётных и нечётных байтов на диске.
7 авг 12, 18:14    [12977015]     Ответить | Цитировать Сообщить модератору
 Re: Разный часовой пояс для двух баз на одном сервере  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
Пишите правильно код. Не важно в какой Time Zone сервер. Изначально он в UTC

Помните,
не бывает 3:00, бывает только 3:00 MSK/EST/...
время всегда одинаковое, разное только его отображение в разнных временных зонах (в том числе при летнее/зимнее)
Например, 3:00 GMT+4 (необязателно целое число).
Просто "для пользователей" временная зона не отображается, если TimeZone пользователя совпадает с отображаемой. И это касается именно пользователя, а не сервера. На одном сервере/базе могут работать пользователи со ВСЕХ временных зон. Есть два пути определять временную зону пользователя
- хранить в настройках пользователя
- тянуть с системы

Если у вас, как сделано предположение, много чего завязано на пользовательское отображение getdate() - это НЕ правильно. Исправляйте тут код.
7 авг 12, 20:55    [12977717]     Ответить | Цитировать Сообщить модератору
 Re: Разный часовой пояс для двух баз на одном сервере  [new]
hpv
Member

Откуда:
Сообщений: 153
alexeyvg
К базе нельзя сделать запрос, запросы делают к серверу. Я даже не могу представить синтаксис запроса к базе. select 1 as ID, getdate() as order_date - это запрос к какой базе данных???....

А разве не к default базе, что-то же вернет результат select db_id()
7 авг 12, 22:40    [12978166]     Ответить | Цитировать Сообщить модератору
 Re: Разный часовой пояс для двух баз на одном сервере  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
hpv
alexeyvg
К базе нельзя сделать запрос, запросы делают к серверу. Я даже не могу представить синтаксис запроса к базе. select 1 as ID, getdate() as order_date - это запрос к какой базе данных???....

А разве не к default базе, что-то же вернет результат select db_id()
Да, есть база по умолчанию. Но это же просто разрешение имён объектов, где их искать, запрос то всё равно будет просто к серверу. И тем более общие функции, типа getdate(), к базе не относятся.
7 авг 12, 23:10    [12978244]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить