Dataphin中使用DATEDIFF函数报错“ODPS-0130071:Semantic analysis exception”
更新时间:
问题描述
Dataphin中使用DATEDIFF函数时报错,报错信息如下:
ODPS-0130071:[1,8] Semantic analysis exception - function DATEDIFF cannot match any overloaded functions with (STRING, STRING, STRING), candidates are BIGINT DATEDIFF(DATE arg0, DATE arg1, STRING arg2); BIGINT DATEDIFF(DATETIME arg0, DATETIME arg1, STRING arg2); BIGINT DATEDIFF(TIMESTAMP arg0, TIMESTAMP arg1, STRING arg2); INT DATEDIFF(DATE arg0, DATE arg1); INT DATEDIFF(STRING arg0, STRING arg1); INT DATEDIFF(TIMESTAMP arg0, TIMESTAMP arg1)
问题原因
DATEDIFF函数的参数类型错误,前两个参数需要为日期类型,而此处的STRING类型没有隐式转换为DATETIME类型,正确的DATEDIFF函数格式是:
bigint datediff(date|datetime|timestamp <date1>, date|datetime|timestamp <date2>, string <datepart>)
解决方案
- 将STRING类型的日期显示转换为日期类型,再使用DATEDIFF函数进行计算。
- 例如使用to_date()函数先转换成日期类型,如下所示:
适用于
- Dataphin
文档内容是否对您有帮助?