1

我努力了:

add_months('date_column',  -'number_of_months_column') 

我得到:

错误 [3535] 字符串转换为数值失败。

我想用这个add_months选项做些什么?

4

2 回答 2

1

为什么在列名周围使用单引号?

如果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))
于 2020-12-26T13:41:02.210 回答
0

是的,我相信这是可能的。但是您需要确保第二个参数是数字数据类型。根据该错误,某些记录似乎无法隐式转换为数字。

以下详细信息来自有关错误 3535及其解决方案的 Teradata 文档。

解释:

查询中的字符串常量在上下文中要求它表示一个数值,而它不需要。

补救:

将常量更改为数值或表示数值的字符串。

于 2020-12-26T13:23:31.413 回答