Как установить ограничение по умолчанию для времени UTC с TimeZone в SQL Server - PullRequest
0 голосов
/ 21 июня 2019

Я должен добавить значение по умолчанию в столбец datetime с временем UTC с помощью Timezone, сейчас я использую GETUTCDATE() в ограничении по умолчанию, но он не добавляет информацию о часовом поясе в столбец.

Пожалуйста, помогите мне.

Ответы [ 2 ]

1 голос
/ 21 июня 2019

Тип, который включает информацию о часовом поясе (в частности, смещение), равен datetimeoffset . GETUTCDATE возвращает старую DATETIME, у которой нет указания часового пояса, даже нет индикатора Local против UTC.

Если вас интересуют часовые пояса и смещения, используйте столбец datetimeoffset и ` SYSDATETIMEOFFSET по умолчанию

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

Вам нужен тип данных DATETIMEOFFSET и функция SWITCHOFFSET

DECLARE @t TABLE 
(
 id INT,
 dt DATETIMEOFFSET DEFAULT (SWITCHOFFSET(SYSDATETIMEOFFSET(),'+00:00'))
);

INSERT @t(id) VALUES(1);

SELECT id, dt, SYSDATETIMEOFFSET() 
FROM @t;

С 2016 года вы можете использовать ЗОНУ ВРЕМЕНИ https://docs.microsoft.com/en-ru/sql/t-sql/queries/at-time-zone-transact-sql?view=sql-server-2017

...