#sql #azure-synapse #datetime2
#sql #azure-synapse #datetime2
Вопрос:
Я новичок в хранилище данных Synapse.
В настоящее время у меня есть столбец метки времени с именем last_update_utc в качестве строкового типа данных, и это время UTC. Мне нужно добавить новый столбец last_update_est с меткой времени в качестве datetime2 преобразование типа данных из столбца last_update_utc — преобразование также должно учитывать летнее время. Вы можете проверить пример вывода ниже:
id | last_update_utc (string) | last_update_est (datetime2)
1 | 2020-02-28T17:26:47.483698Z | 2020-02-28T12:26:47.483698Z
2 | 2021-09-03T22:59:19.093Z | 2021-09-03T18:59:19.093Z
Первая строка, это 5 часов разницы без DST и 4 часа разницы с DST. Имя таблицы hub.test
и изначально есть столбцы id и last_update_utc.
Существует ли простая функция или метод для выполнения вышеуказанной задачи в Synapse DW?
Спасибо
Ответ №1:
Преобразуйте строку в datetime2 и примените к ЧАСОВОМУ ПОЯСУ, чтобы преобразовать UTC в требуемый часовой пояс.
SELECT CONVERT(DATETIME2, '2021-09-03T22:59:19.093Z') AT TIME ZONE 'UTC' AT TIME ZONE 'Eastern Standard Time'as last_update_est
Обратитесь к этому документу, чтобы узнать больше о реализации в ЧАСОВОМ ПОЯСЕ.