我尝试过:
add_months('date_column', -'number_of_months_column')
我得到:
错误[3535]字符串转换为数值失败。
我尝试用add_months
选项做的事情可能吗?
为什么在列名周围使用单引号
如果number_of_months_column
的数据类型是integer
,那么这应该有效:
add_months(date_column, -number_of_months_column)
如果number_of_months_column
是字符串,则必须首先将其转换为整数:
add_months(date_column, -to_number(number_of_months_column))
或:
add_months(date_column, -cast(to_number(number_of_months_column) as integer))
或:
add_months(date_column, -trycast(to_number(number_of_months_column) as integer))
是的,我相信这是可能的。但您需要确保第二个参数是数字数据类型。根据错误,某些记录似乎无法隐式转换为数字。
以下详细信息来自Teradata文档中关于错误3535及其解决方案的信息。
解释:
查询中的字符串常量位于需要它表示一个数值,而不是。
补救措施:
将常量更改为数值或字符串表示一个数值。