Azure SQL Преобразование «Отображаемое имя часового пояса» в «Идентификатор часового пояса»

Я работаю с последней версией Azure SQL. У меня есть ряд файлов, и я хочу преобразовать их в файлы. Я знаю, что SQL-сервер содержит как отображаемое имя, так и идентификатор. sys.time_zone_info есть все, но такие команды, как CURRENT_TIMEZONE ()выход . Я надеюсь на простую функцию, которая принимает строку Time zone display name и возвращает Time zone IDэто имя соответствует, но я не могу найти на это ссылки. И я не могу найти таблицу, в которой действительно хранится отображение.

Справка - Часовые пояса в управляемом экземпляре SQL Azure

3 ответа

В sys.time_zone_info, имя - это идентификатор. Не самый лучший для нормализации.

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

Если вы используете это для запросов к Azure SQL, ожидающих локализации часового пояса, имейте в виду, что, согласно документации Azure SQL, база данных работает в, и CURRENT_TIMEZONE_ID() вернет UTC всегда.

Я думаю, что мы можем создать таблицу для хранения информации с двумя столбцами и. Затем создайте хранимую процедуру для запроса, введите Time zone display name возвращаться Time zone ID.

Насколько я знаю, SQL Azure не предоставляет таблицы для преобразования из Time Zone IDк Time Zone display name. Я думаю, что нет никакой таблицы с этой информацией, потому что sys.time_zone_infoсистемное представление получает информацию из внутренних функций, а не из других таблиц, которые вы можете проверить.

Вы можете использовать некоторые таблицы и функции из T-SQL Toolbox или создавать свои собственные таблицы.

Использование пользовательской таблицы

Вы можете получить (и/или изменить) код для создания таблиц из TSqlToolbox. Этот код создает таблицу DateTimeUtil.Timezoneс желаемой информацией.

Я сделал пример, который вы можете попробовать в db<>fiddle

      SELECT identifier 
  FROM [TimeZone]
 WHERE [TimeZone].[DisplayName] = '(UTC-08: 00) Baja California'
      | Identifier                       |
|----------------------------------|
| Pacific Standard Time (Mexico)   |
Другие вопросы по тегам