这是SQL Server中的代码;我需要将其转换为redshift
convert(decimal, LEFT(convert(varchar, dateadd(month, 3, convert(datetime, convert(varchar, Column_name))), 112), 6))
有帮助吗?
答案 0 :(得分:0)
您可以通过将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 specific 3rd parameter 112
to convert the date to the format of YYYYMMDD
.一起使用,而Redshift等效项是TO_CHAR
。