SQL 迁移检查器
粘贴一段 SQL,选择迁移前后的引擎,下面会列出需要改写的函数和日期格式符,并给出能安全自动替换的部分。SQL 只在浏览器中处理,不会上传。
怎么判断要不要改写
- 检查器先找出 SQL 中带括号的函数调用,再按迁移前引擎的写法匹配站内收录的函数。
- 匹配到的函数如果在迁移后的引擎里换了函数名或没有对应函数,就列为需要改写,并给出目标写法和说明。规则与迁移清单相同。
- DATE_FORMAT、TO_CHAR、TO_DATE、FROM_UNIXTIME、UNIX_TIMESTAMP 等函数的第二个参数如果是格式字符串,会按两边引擎的格式符写法换算,规则与日期格式符转换器相同。
- 参数个数、顺序和含义都相同的函数会直接改名,例如 NVL 改为 IFNULL;日期格式字符串会直接换算。参数顺序或 NULL 处理不同的函数(例如 datetrunc、collect_list、months_between)只列出来,不会自动修改。
- 同名函数的参数、返回值和边界情况仍可能不同,迁移后请对照函数页的说明实测。
目前收录 45 个常用函数:add_months、any_value、approx_count_distinct、array_contains、coalesce、collect_list、collect_set、concat、concat_ws、date_add、date_format、date_sub、dateadd、datediff、datetrunc、dayofweek、decode、explode、from_json、from_unixtime、get_json_object、getdate、if、instr、last_day、length、max_by、max_pt、months_between、nvl、percentile_approx、regexp_extract、regexp_replace、size、sort_array、split、split_part、str_to_map、substr、substring_index、to_char、to_date、unix_timestamp、weekofyear、wm_concat。