CONVERT 函数从 SQL Server 到 REDSHIFT

Posted

技术标签:

【中文标题】CONVERT 函数从 SQL Server 到 REDSHIFT【英文标题】:CONVERT function from SQL Server to REDSHIFT 【发布时间】:2019-01-02 12:14:10 【问题描述】:

这是来自 SQL Server 的代码;我需要把它转换成红移

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

有什么帮助吗?

【问题讨论】:

请举例说明源值和目标值是什么(编辑您的问题) 【参考方案1】:

您可以通过将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

【讨论】:

以上是关于CONVERT 函数从 SQL Server 到 REDSHIFT的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server CONVERT() 函数

SQL Server CONVERT() 函数

SQL Server中时间格式转换函数convert()的使用

SQL Server 时间函数---CONVERT() 函数

SQL Server 与 T-SQL 中的 Cast 和 Convert 函数有啥区别? [复制]

SQL Server函数中 convert(char(10),rq,21)>具体代表啥含义?