全部产品

隐式类型转换错误

更新时间:2017-11-01 00:48:52

问题现象

执行 SQL 时报错如下:

  1. FAILED: ODPS-0121035:Illegal implicit type cast - in function to_char, in function cast, string datetimes format must be yyyy-mm-dd hh:mi:ss, input string is xxx

问题原因

如果您调用一个需要传入 Datetime 类型的参数的函数,却传入一个 String 类型的字段,系统会对字符串做隐式类型转换。目前仅支持 yyyy-mm-dd hh:mi:ss 类型的字符串做隐式转换。如果您的字符串中的数据不是这个格式,就会抛出这个错误。

解决办法

针对这个问题,建议您使用 TO_DATE 函数来把 String 转成 Datetime 类型的数据。详情请参见 数学函数。如果字符串的类型和 TO_DATE 要求的不一样,比如有类似 Aug 这种用英语缩写来表示月份的,可能需要自己写 UDF 做解析。