Это код из SQL Server; Мне нужно преобразовать его в красное смещение
convert(decimal, LEFT(convert(varchar, dateadd(month, 3, convert(datetime, convert(varchar, Column_name))), 112), 6))
Любая помощь?
Вы можете преобразовать его, заменив функцию convert(varchar на TO_CHAR и указав выходной формат как 'YYYMMDD':
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.
CONVERT
112
YYYYMMDD