MySQL
MySQL
SELECT CAST('123' AS SIGNED), CAST(12.34 AS UNSIGNED);
SELECT CAST(123 AS CHAR), CAST('2024-06-01' AS DATE);
SELECT CONVERT(12.34, SIGNED); -- 等价 CAST 风格
SELECT CAST('123abc' AS SIGNED); -- 123 并产生 warningPostgreSQL
PostgreSQL
SELECT CAST('123' AS integer), '123'::int;
SELECT CAST(12.34 AS numeric(6,2));
SELECT CAST('2024-06-01' AS date);
SELECT CAST('123abc' AS integer); -- 直接报错 invalid input syntax| MySQL 特有 | SIGNED / UNSIGNED / CHAR / JSON / BINARY 等目标类型 |
|---|---|
| PostgreSQL | 目标类型名遵循 SQL 标准(integer/numeric/date...);:: 简写 |
| 非法输入 | MySQL 截取可用前缀并 warning;PostgreSQL 抛错 |