Часовой пояс неверен на 30 минут - PullRequest
0 голосов
/ 06 декабря 2010

Мой SQL Server, по-видимому, использует ESDT AU вместо времени ACSDT AU, однако Сервер (Server 2008) имеет правильный часовой пояс в ACSDT AU, есть ли способ найти и устранить проблему?

Когда я запускаю:

SELECT GETUTCDATE(), GETDATE(), DATEDIFF(HOUR, GETDATE(), GETUTCDATE()) ;

Я получаю следующие результаты:

2010-12-06 01:47:57.207 2010-12-06 12:17:57.207 -11

У меня есть БД, которая сохраняет свои даты в формате UTC, и когда я вычисляю правильное смещение TZ, оно всегдаотключено на 30 минут.

Любая помощь приветствуется.

Среда: SQL Server 2005 x64 SP3 (9.0.4035) MS Server 2008 x64 SP1

Ответы [ 3 ]

1 голос
/ 06 декабря 2010

, даже если вы упомянули, что время вашего сервера указано правильно, но проверяли ли вы «системное время сервера»? Он находится на вкладке «Административный» на панели управления сервером

Причина, по которой я говорю это, просто потому, что даже вы можете настроить время сервера с помощью маленьких «часов», которые появляются в правом нижнем углу вашего сервера, но это не правильный способ изменить

1 голос
/ 06 декабря 2010

ACDT - UTC + 10,5, AEDT - UTC + 11

Когда вы говорите, что «рассчитываете правильное смещение TZ», вы уверены, что это правильно? Из вашего запроса похоже, что SQL использует ACDT, поскольку GETUTCDATE + 10.5 оказывается тем же самым результатом GETDATE (01:47 + 10.5 = 12:17).

0 голосов
/ 03 января 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...