2009-02-01 2 views
1

Я использую сервер sql 2005, размещенный в состояниях. Скоро мы переместим дБ в Европу. Я хотел бы обновить даты в db, чтобы учесть разницу в часовом поясе. Есть ли хороший способ сделать это? Или это всего лишь случай прокрутки дат и добавления смещения часового пояса?Рекомендации по часовому поясу в sql-сервере

ответ

3

Нужно ли это менять, потому что оно было физически перемещено? Если вы поддерживаете глобальные приложения, я бы сохранил всю информацию о дате/времени в GMT и перевел на локальный клиент.

+0

Интересно. Благодарю. Проблема в том, что у нас уже есть данные в db. И как только мы перейдем, данные будут использоваться только в этом часовом поясе. – user17510

+0

Все данные времени должны храниться в универсальном времени в качестве принципала. Тогда эти вопросы никогда не возникают. –

2

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

Одна из причин, почему более поздняя опция имеет смысл, заключается в том, что вы используете функцию CURDATE для вставки/фильтрации записей из базы данных, иначе GMT ​​- лучший вариант.

Вы можете попробовать использовать DATEDIFF с DATEADD, но из-за DST это не всегда даст точное время (в некоторых случаях - на 1 час).

Существует известное ограничение в SQL Server 2005 о преобразованиях часовых поясов, пожалуйста refere по следующей ссылке для получения дополнительной информации: http://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=308563

Смежные вопросы