Функция преобразования из SQL Server в REDSHIFT - PullRequest
0 голосов
/ 02 января 2019

Это код из SQL Server; Мне нужно преобразовать его в красное смещение

convert(decimal, LEFT(convert(varchar, dateadd(month, 3, convert(datetime, convert(varchar, Column_name))), 112), 6))

Любая помощь?

1 Ответ

0 голосов
/ 02 января 2019

Вы можете преобразовать его, заменив функцию convert(varchar на TO_CHAR и указав выходной формат как 'YYYMMDD':

-- SQL Server original
convert(decimal, LEFT(convert(varchar, dateadd(month, 3, convert(datetime, convert(varchar, Column_name))), 112     ), 6))
-- Redshift version
convert(decimal, LEFT( TO_CHAR(        dateadd(month, 3, convert(datetime, convert(varchar, '20190102'))), 'YYYMMDD'), 6))
-- Output: 19040

Оригинал использует CONVERT с SQL Serverконкретный третий параметр 112 для преобразования даты в формат YYYYMMDD. Эквивалент Redshift равен TO_CHAR.

...