2015-07-01 4 views
1

У меня есть столбец datetime в таблице красного смещения. Он содержит дату в формате UTC. Итак, когда я запрашиваю на основе time_zone, например UTC + 5: 30/UTC + 4: 30, я хочу преобразовать столбец datetime таблицы в выбранную time_zone и продолжить дальше. Это дает мне неправильный результат.Конвертировать часовой пояс в Amazon Redshift

С помощью этого метода: CONVERT_TIMEZONE ([ 'source_zone',] 'target_zone', 'временная метка')

Запрос Тип 1: Неправильный ввод, правильный ответ

SELECT id, convert_timezone('UTC+5:30','UTC', date) as converted_time, ingest_date 
FROM table_name 
WHERE conditions 

Тип запроса 2: Правильный ввод, неправильный ответ -> Он снова вычитание 5:30 с даты в колонке

SELECT id , convert_timezone('UTC','UTC+5:30',ingest_date) as converted_time, ingest_date 
FROM table_name 
WHERE conditions  

Запрос Тип 3: Неправильный ввод, правильный ответ

SELECT id, convert_timezone('UTC','UTC-5:30',ingest_date) as converted_time, ingest_date 
FROM table_name 
WHERE conditions  

Как конвертировать/разбор столбца UTC в выбранный часовой пояс?

ответ

1

В Redshift CONVERT_TIMEZONE интерпретирует смещение как время от UTC. Например, смещение +2 эквивалентно UTC-2, а смещение -2 равно UTC + 2. CONVERT_TIMEZONE не использует префиксную строку при вычислении смещения, даже если строка представляет действительный часовой пояс. Например, «NEWZONE + 2», «PDT + 2» и «GMT + 2» имеют одинаковый результат. Если строка не включает смещение, она должна представлять допустимый часовой пояс, или CONVERT_TIMEZONE возвращает ошибку.

Для преобразования time_zone, если вы отправляете «UTC + 5: 30/UTC-4: 30», амазон интерпретирует его как «UTC-5: 30/UTC + 4: 30».

Теперь вы можете конвертировать + в - и наоборот, прежде чем отправлять его в режим красного смещения.

(http://docs.aws.amazon.com/redshift/latest/dg/CONVERT_TIMEZONE.html)

Смежные вопросы