Как настроить SQLServer UTCDATE таким же, как Windows Server? - PullRequest
1 голос
/ 19 июня 2019

У меня есть таблица, в которой в одном из этих столбцов отображается значение даты и времени:

--result when querying the database directly:
id    datetime
1     2019-05-29 05:12:06.000
2     2019-01-29 10:48:34.000

Но через веб-браузер такие значения составляют + 3 часа :

--values when displayed in a Primefaces datatable from the Web Server:
id    datetime
1     2019-05-29 08:12:06.000
2     2019-01-29 13:48:34.000

Я исследовал и понял, что эти +3 часа происходят в SQL Server:

SELECT GETDATE()   : 2019-06-19 11:48:53.483
SELECT GETUTCDATE(): 2019-06-19 14:48:53.483 

О GETUTCDATE, как описано здесь : Это значениепроисходит от операционной системы компьютера , на котором запущен экземпляр SQL Server .

Но я проверил часовой пояс ОС и, похоже, все в порядке:

image showing the SQLServer GETDATE, GETUTCDATE and Windows Server time zone

Экземпляр SQLServer и Windows Server установлены в виртуальной машине.

Как настроить дату UTC в SQL Server длябыть такой же как ОС, избегая этих +3 часов, как описано выше?

Заранее спасибо.

1 Ответ

0 голосов
/ 19 июня 2019

Как настроить дату UTC в SQL Server такой же, как в ОС, избегая этих +3 часов, как описано выше?

Как обсуждалось в комментариях к вопросу, дата и время UTC не могут быть изменены. Только местная дата и время могут быть изменены путем изменения часового пояса системы. Если вы хотите, чтобы они имели одно и то же значение, измените часовой пояс системы на «Всемирное координированное время (UTC)».

Единственный способ обойти это - установить часы вручную, а не синхронизировать их, и лгать о реальном времени. Это не рекомендуется, так как для правильной работы многих вещей требуется точное время.

...