文档首页/
数据库和应用迁移 UGO/
用户指南/
语法转换指南/
转换错误码/
MySQL To GaussDB 转换错误码/
U0400022:GaussDB部分时间函数不支持time或timetz类型的入参
更新时间:2025-06-04 GMT+08:00
U0400022:GaussDB部分时间函数不支持time或timetz类型的入参
描述
数据库类型与版本
- 源库类型与版本:MySQL 5.5、5.6、5.7、8.0版本。
- 目标库类型与版本:GaussDB V2.0-8.0之前的版本。
语法示例
MySQL迁移至GaussDB V2.0-8.0之前版本时,会对ADDTIME、DAY、EXTRACT、DAYOFMONTH、DAYOFWEEK、DATEDIFF、MONTH、TO_DAYS、TRUNCATE、UNIX_TIMESTAMP、YEAR函数进行转换改写的同时并生成此错误提示。
例如获取日期中年份与月份的YEAR、MONTH函数,需要改写成GaussDB的DATE_PART函数,需要注意的是MySQL的YEAR、MONTH函数可以从time或者timetz类型中获取到日期的信息,在GaussDB的DATE_PART函数中,这是不支持的,如下示例所示。
MySQL:
SELECT YEAR(CURRENT_TIME); SELECT MONTH(CURRENT_TIME);
转换成GaussDB语句:
SELECT DATE_PART('YEAR', CURRENT_TIME); SELECT DATE_PART('MONTH', CURRENT_TIME);
改造建议
当出现此错误提示时,需要用户自行评估使用到这些时间函数的地方,其中是否使用了time或者timetz类型的值作为函数入参,如果使用了,则需要进行业务改造,确保转换后的时间函数不会出错。