本文介绍RDS MySQL DuckDB分析实例的兼容性。
支持的数据类型
类型 | MySQL数据类型 | 兼容性说明 |
数值类型 |
| 兼容 |
| 兼容 | |
| 兼容 | |
| 兼容 | |
| 兼容 | |
| 兼容 | |
| 兼容 | |
|
| |
字符类型 |
| 仅支持UTF8系列的字符集和校对规则。 |
| 兼容 | |
| 兼容 | |
| 兼容 | |
| 兼容 | |
二进制字符类型 |
| 兼容 |
| 兼容 | |
| 兼容 | |
时间类型 |
| 兼容 |
| DuckDB分析实例支持范围为 而MySQL支持范围为 | |
| DuckDB分析实例支持范围为 而MySQL支持范围为 | |
| DuckDB分析实例支持范围为 而MySQL支持范围为 | |
| 兼容 | |
空间数据类型 |
| 不兼容 |
SELECT语句限制
注释
不支持
#
注释。例如:SELECT * FROM t1 #comment; ;
字符集转换
无论目标字符集是否支持,均不支持任何形式的字符集转换。例如:
SELECT convert(id using gbk) FROM t1; SELECT cast(id AS CHAR CHARACTER SET utf8mb4) FROM t1;
JOIN语法
不支持在一条SQL中同时使用显示JOIN和隐式JOIN。例如:
SELECT * FROM t1 JOIN (t2, t3);
时间间隔单位(Interval unit)
不支持以下时间间隔单位。
YEAR_MONTH, DAY_HOUR, HOUR_MINUTE, DAY_MINUTE, HOUR_SECOND, DAY_SECOND, SECOND_MICROSECOND, HOUR_MICROSECOND, DAY_MICROSECOND, MINUTE_SECOND, MINUTE_MICROSECOND, SQL_TSI_HOUR
时间间隔表达式(Interval expr unit)
在Interval expr unit表达式中,若expr为非常量表达式,必须加括号明确表达式的范围。例如:
# 以下SQL不支持 SELECT '2018-12-31 23:59:59' + INTERVAL -1 SECOND; # 需要改写为 SELECT '2018-12-31 23:59:59' + INTERVAL (-1) SECOND;
别名定义
不支持
expr 'alias'
和expr "alias"
的别名用法。例如:# 不支持 SELECT 1 '1'; SELECT 1 "1"; # 可以改写为 SELECT 1 AS '1'; SELECT 1 AS "1"; SELECT 1 AS `1`; SELECT 1 `1`; # 以上SQL完全等价
如果别名是关键字,必须使用AS或反引号。例如:
SELECT id time FROM t1; # 需要改写为以下任意一个 SELECT id AS time FROM t1; SELECT id `time` FROM t1; SELECT id AS `time` FROM t1; SELECT id AS 'time' FROM t1; SELECT id AS "time" FROM t1;
子查询
不支持等值非标量子查询。例如:
SELECT * FROM t1 WHERE (id, col1) = (SELECT id, col1 FROM t1);
数据类型转换
不支持显式转换为
BINARY(num)
、SIGNED
或UNSIGNED
数据类型。例如:SELECT CAST('abc' AS binary(1)); SELECT CAST(1 AS SIGNED); SELECT CAST(1 AS UNSIGNED);
列修饰符
不支持Binary修饰列名。例如:
SELECT binary id FROM t1;
复杂运算表达式
对于复杂运算表达式,建议通过括号明确结合律以避免解析错误。
# 符号(!=-)在DuckDB分析实例中无法正确解析 SELECT 1 !=-1; # 建议改写为 SELECT 1 != (-1); # 符号(--)在DuckDB分析实例中无法正确解析 SELECT --1; # 建议改写为 SELECT -(-1);
类型转换问题
为确保执行效率,DuckDB分析实例在执行过程中采用强类型约束机制。在查询执行时,系统会根据上下文自动进行类型转换,这种转换称为隐式类型转换。对于无法通过隐式方式完成转换的场景,您需要使用CAST
或CONVERT
函数显式指定类型转换,以确保查询能够正确执行。
函数中支持的隐式类型转换规则
“/”表示不涉及隐式转换,“✔️”表示支持隐式转换,“✖️”表示不支持隐式转换。
常规字符串类型代指MySQL中的
CHAR
、VARCHAR
、TINYTEXT
、TEXT
、MEDIUMTEXT
、LONGTEXT
、JSON
、SET
和ENUM
。二进制字符串类型代指MySQL中的
BINARY
、VARBINARY
、BIT
、TINYBLOB
、BLOB
、MEDIUMBLOB
和LONGBLOB
。不支持大范围整数类型转换为小范围整数类型。
转换至基础标量类型
源类型 | 隐式转换至基础标量类型 | ||
字符串字面量 | 数值字面量 | ||
基础标量 | 字符串字面量 | / | ✖️ |
数值字面量 | ✖️ | / | |
数值 | BOOLEAN | ✖️ | ✖️ |
整数类型 | ✖️ | ✖️ | |
FLOAT | ✖️ | ✖️ | |
DOUBLE | ✖️ | ✖️ | |
DECIMAL | ✖️ | ✖️ | |
字符串 | 常规字符串 | ✖️ | ✖️ |
二进制字符串 | ✖️ | ✖️ | |
日期与时间 | YEAR | ✖️ | ✖️ |
DATE | ✖️ | ✖️ | |
TIME | ✖️ | ✖️ | |
DATETIME | ✖️ | ✖️ | |
TIMESTAMP | ✖️ | ✖️ |
转换至数值类型
源类型 | 隐式转换至数值类型 | |||||
BOOLEAN | 整数类型 | FLOAT | DOUBLE | DECIMAL | ||
基础标量 | 字符串字面量 | ✔️ | ✖️ | ✖️ | ✔️ | ✖️ |
数值字面量 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
数值 | BOOLEAN | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
整数类型 | ✔️ | / | ✔️ | ✔️ | ✔️ | |
FLOAT | ✔️ | ✔️:仅支持转换为BIGINT | / | ✔️ | ✖️ | |
DOUBLE | / | ✔️:仅支持转换为BIGINT | ✖️ | / | ✖️ | |
DECIMAL | ✔️ | ✔️ | ✔️ | ✔️ | / | |
字符串 | 常规字符串 | ✔️ | ✖️ | ✖️ | ✔️ | ✖️ |
二进制字符串 | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | |
日期与时间 | YEAR | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
DATE | ✔️ | ✖️ | ✖️ | ✔️ | ✖️ | |
TIME | ✔️ | ✖️ | ✖️ | ✔️ | ✖️ | |
DATETIME | ✔️ | ✖️ | ✖️ | ✔️ | ✖️ | |
TIMESTAMP | ✔️ | ✖️ | ✖️ | ✔️ | ✖️ |
转换至字符串类型
源类型 | 隐式转换至字符串类型 | ||
常规字符串 | 二进制字符串 | ||
基础标量 | 字符串字面量 | ✔️ | ✖️ |
数值字面量 | ✖️ | ✖️ | |
数值 | BOOLEAN | ✖️ | ✖️ |
整数类型 | ✔️ | ✖️ | |
FLOAT | ✔️ | ✖️ | |
DOUBLE | ✔️ | ✖️ | |
DECIMAL | ✔️ | ✖️ | |
字符串 | 常规字符串 | / | ✖️ |
二进制字符串 | ✖️ | / | |
日期与时间 | YEAR | ✔️ | ✖️ |
DATE | ✔️ | ✖️ | |
TIME | ✔️ | ✖️ | |
DATETIME | ✔️ | ✖️ | |
TIMESTAMP | ✔️ | ✖️ |
转换至日期与时间类型
源类型 | 隐式转换至日期与时间类型 | |||||
YEAR | DATE | TIME | DATETIME | TIMESTAMP | ||
基础标量 | 字符串字面量 | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
数值字面量 | ✔️ | ✖️ | ✖️ | ✖️ | ✖️ | |
数值 | BOOLEAN | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
整数类型 | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | |
FLOAT | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | |
DOUBLE | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | |
DECIMAL | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | |
字符串 | 常规字符串 | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
二进制字符串 | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | |
日期与时间 | YEAR | / | ✖️ | ✖️ | ✖️ | ✖️ |
DATE | ✖️ | / | ✖️ | ✔️ | ✔️ | |
TIME | ✖️ | ✖️ | / | ✔️ | ✔️ | |
DATETIME | ✖️ | ✖️ | ✖️ | / | ✔️ | |
TIMESTAMP | ✖️ | ✖️ | ✖️ | ✔️ | / |
类型比较中支持的隐式转换规则
DuckDB分析实例在类型转换和比较规则上具有更高的严格性和一致性,但在某些场景下可能与MySQL存在行为差异。具体如下:
字符串到日期的隐式转换:字符串隐式转换为日期时,如果字符串格式无法正确解析为有效的日期值,SQL查询将报错并执行失败。
整数类型之间的比较规则:不同整数类型之间进行比较时,DuckDB分析实例会统一向取值范围更大的整数类型进行转换。
多元表达式的类型转换顺序:对于
col1 in (col2, col3, col4, ...)、col1 between col2 and col3、coalesce(col1, col2, col3, ...)
等多元表达式,会按照顺序进行类型转换。YEAR类型的兼容性差异:在DuckDB分析实例中,YEAR类型会被转换为INTEGER类型进行比较,可能与MySQL存在不兼容。例如:
CREATE TABLE t1 (id YEAR PRIMARY KEY); INSERT INTO t1 VALUES (1980); SELECT * FROM t1 WHERE id BETWEEN 70 AND 90; # MySQL查询结果 +------+ | id | +------+ | 1980 | +------+ # DuckDB分析实例查询结果 Empty set.
布尔类型的字符串转换规则:DuckDB分析实例支持将
'1'、'0'、'yes'、'no'、'true'、'false'
六种字符串转换为BOOLEAN类型,其余字符串转换会报错;而MySQL会将'1'
转换为true
,其余字符串均转换为false
。因此,如下SQL可能会存在结果不一致问题:CREATE TABLE t1 (id INT PRIMARY KEY); INSERT INTO t1 VALUES (1); SELECT id FROM t1 WHERE 'true'; # MySQL查询结果 Empty set # DuckDB分析实例查询结果 +------+ | id | +------+ | 1 | +------+
当不同类型的数据进行比较时,系统会按下表规则,将数据“转换为同一类型”后进行比较;对于不支持(✖️)的类型比较,会直接报错。
常规字符串类型代指MySQL中的
CHAR
、VARCHAR
、TINYTEXT
、TEXT
、MEDIUMTEXT
、LONGTEXT
、JSON
、SET
和ENUM
。二进制字符串类型代指MySQL中的
BINARY
、VARBINARY
、BIT
、TINYBLOB
、BLOB
、MEDIUMBLOB
和LONGBLOB
。
与基础标量类型比较
源类型 | 与基础标量类型比较 | ||
字符串字面量 | 数值字面量 | ||
基础标量 | 字符串字面量 | 字符串 | 数值字面量 |
数值字面量 | 数值字面量 | 较大范围的数值类型 | |
数值 | BOOLEAN | BOOLEAN | 较大范围的数值类型 |
整数类型 | 整数类型 | 较大范围的数值类型 | |
FLOAT | FLOAT | 较大范围的数值类型 | |
DOUBLE | DOUBLE | 较大范围的数值类型 | |
DECIMAL | DECIMAL | 较大范围的数值类型 | |
字符串 | 常规字符串 | 常规字符串 | 数值字面量 |
二进制字符串 | 二进制字符串 | ✖️ | |
日期与时间 | YEAR | YEAR | 较大范围的数值类型 |
DATE | DATETIME | ✖️ | |
TIME | TIME | ✖️ | |
DATETIME | DATETIME | ✖️ | |
TIMESTAMP | TIMESTAMP | ✖️ |
与数值类型比较
源类型 | 与数值类型比较 | |||||
BOOLEAN | 整数类型 | FLOAT | DOUBLE | DECIMAL | ||
基础标量 | 字符串字面量 | BOOLEAN | 整数类型 | FLOAT | DOUBLE | DECIMAL |
数值字面量 | 较大范围的数值类型 | 较大范围的数值类型 | 较大范围的数值类型 | 较大范围的数值类型 | 较大范围的数值类型 | |
数值 | BOOLEAN | BOOLEAN | 整数类型 | FLOAT(不等式比较✖️) | DOUBLE(不等式比较✖️) | DECIMAL(不等式比较✖️) |
整数类型 | 整数类型 | 整数类型 | FLOAT | DOUBLE | DECIMAL | |
FLOAT | FLOAT(不等式比较✖️) | FLOAT | FLOAT | DOUBLE | FLOAT | |
DOUBLE | DOUBLE(不等式比较✖️) | DOUBLE | DOUBLE | DOUBLE | DOUBLE | |
DECIMAL | DECIMAL(不等式比较✖️) | DECIMAL | FLOAT | DOUBLE | DECIMAL | |
字符串 | 常规字符串 | BOOLEAN | 整数类型 | FLOAT | DOUBLE | DECIMAL |
二进制字符串 | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | |
日期与时间 | YEAR | INTEGER | 较大范围的整数类型 | FLOAT | DOUBLE | DECIMAL |
DATE | ✖️ | ✖️ | ✖️ | DOUBLE | ✖️ | |
TIME | ✖️ | ✖️ | ✖️ | DOUBLE | ✖️ | |
DATETIME | ✖️ | ✖️ | ✖️ | DOUBLE | ✖️ | |
TIMESTAMP | ✖️ | ✖️ | ✖️ | DOUBLE | ✖️ |
与字符串类型比较
源类型 | 与字符串类型比较 | ||
常规字符串 | 二进制字符串 | ||
基础标量 | 字符串字面量 | 常规字符串 | 二进制字符串 |
数值字面量 | 数值字面量 | ✖️ | |
数值 | BOOLEAN | BOOLEAN | ✖️ |
整数类型 | 整数类型 | ✖️ | |
FLOAT | FLOAT | ✖️ | |
DOUBLE | DOUBLE | ✖️ | |
DECIMAL | DECIMAL | ✖️ | |
字符串 | 常规字符串 | 常规字符串 | 二进制字符串 |
二进制字符串 | 二进制字符串 | 二进制字符串 | |
日期与时间 | YEAR | INTEGER | ✖️ |
DATE | DATE | ✖️ | |
TIME | TIME | ✖️ | |
DATETIME | DATETIME | ✖️ | |
TIMESTAMP | TIMESTAMP | ✖️ |
与日期与时间类型比较
源类型 | 与日期与时间类型比较 | |||||
YEAR | DATE | TIME | DATETIME | TIMESTAMP | ||
基础标量 | 字符串字面量 | YEAR | DATETIME | TIME | DATETIME | TIMESTAMP |
数值字面量 | 较大范围的数值类型 | ✖️ | ✖️ | ✖️ | ✖️ | |
数值 | BOOLEAN | INTEGER | ✖️ | ✖️ | ✖️ | ✖️ |
整数类型 | 较大范围的整数类型 | ✖️ | ✖️ | ✖️ | ✖️ | |
FLOAT | FLOAT | ✖️ | ✖️ | ✖️ | ✖️ | |
DOUBLE | DOUBLE | DOUBLE | DOUBLE | DOUBLE | DOUBLE | |
DECIMAL | DECIMAL | ✖️ | ✖️ | ✖️ | ✖️ | |
字符串 | 常规字符串 | INTEGER | DATE | TIME | DATETIME | TIMESTAMP |
二进制字符串 | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | |
日期与时间 | YEAR | INTEGER | ✖️ | ✖️ | ✖️ | ✖️ |
DATE | ✖️ | DATE | ✖️ | DATETIME | TIMESTAMP | |
TIME | ✖️ | ✖️ | TIME | ✖️ | ✖️ | |
DATETIME | ✖️ | DATETIME | ✖️ | DATETIME | DATETIME | |
TIMESTAMP | ✖️ | TIMESTAMP | ✖️ | DATETIME | TIMESTAMP |
可能出现的查询结果不一致问题
数值运算
浮点数的大小比较存在不兼容。例如:
CREATE TABLE t1 (id FLOAT PRIMARY KEY); INSERT INTO t1 VALUES (1.22), (1.23), (1.24); SELECT * FROM t1 WHERE t1.id > 1.23; # MySQL查询结果 +------+ | id | +------+ | 1.23 | | 1.24 | +------+ # DuckDB分析实例查询结果 +------+ | id | +------+ | 1.24 | +------+
浮点数的复杂复合运算结果因为浮点误差会存在不一致。
当整数、DECIMAL类型之间做运算时,结果不能超过该类型的取值范围,否则可能出现结果溢出导致的执行失败。
CREATE TABLE t1 (id TINYINT PRIMARY KEY); INSERT INTO t1 VALUES (100); SELECT id * 2 FROM t1; # MySQL查询结果 +--------+ | id * 2 | +--------+ | 200 | +--------+ # DuckDB分析实例查询结果 ERROR 7577 (HY000): [DuckDB] Out of Range Error: Overflow in multiplication of INT8 (100 * 2)!.
校对规则导致的结果不一致问题
utf8mb4_0900_xx
系列的校对规则在部分符号字符比较存在不兼容。例如:
CREATE TABLE t1 ( id varchar(20) COLLATE utf8mb4_0900_ai_ci PRIMARY KEY );
INSERT INTO t1 VALUES ('!'), ('_');
SELECT * FROM t1 ORDER BY id;
# MySQL查询结果
+----+
| id |
+----+
| _ |
| ! |
+----+
# DuckDB分析实例查询结果
+----+
| id |
+----+
| ! |
| _ |
+----+
IN的向量子查询对于NULL值的处理
在DuckDB分析实例中,IN的向量子查询对于NULL值的处理存在不兼容问题。例如:
CREATE TABLE t1 (id INT PRIMARY KEY, col1 INT);
INSERT INTO t1 VALUES (1, 1), (2, 2);
CREATE TABLE t2 (id INT PRIMARY KEY, col1 INT);
INSERT INTO t2 VALUES (1, NULL);
select (id, col1) in (select id, col1 from t2) from t1;
# MySQL查询结果
+-----------------------------------------+
| (id, col1) in (select id, col1 from t2) |
+-----------------------------------------+
| NULL |
| 0 |
+-----------------------------------------+
# DuckDB分析实例查询结果
+-----------------------------------------+
| (id, col1) in (select id, col1 from t2) |
+-----------------------------------------+
| NULL |
| NULL |
+-----------------------------------------+
对于数据(2, 2)
,IN后不存在向量前缀的匹配项,MySQL返回0,DuckDB分析实例返回NULL。
函数限制
聚合函数
函数名 | 是否支持 | 使用限制 |
| 是 | 无 |
| 是 | 不支持字符串类型、DECIMAL类型、日期类型。 |
| 是 | 不支持字符串类型、DECIMAL类型、日期类型。 |
| 是 | 不支持字符串类型、DECIMAL类型、日期类型。 |
| 是 | 无 |
| 是 | 无 |
| 是 | 不支持多列 |
| 否 | 不涉及 |
| 否 | 不涉及 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
数值函数
数值函数不支持BOOLEAN类型。
函数名 | 是否支持 | 使用限制 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 不支持 |
| 否 | 不涉及 |
| 是 | 无 |
| 是 | 无 |
| 否 | 不涉及 |
| 是 | 无 |
| 是 | 无 |
| 否 | 不涉及 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 否 | 不涉及 |
字符串函数
DuckDB分析实例严格区分二进制字符串(BLOB、VARBINARY等)和字符串(VARCHAR、TEXT、JSON等),因此以下字符串函数只能以字符串为输入,不能以二进制字符串为输入。对于部分能以二进制字符串为输入的函数,下文将给出特别说明。
函数名 | 是否支持 | 使用限制 |
| 是 | 无 |
| 是 | MySQL中 |
| 是 | 无 |
| 否 | 不涉及 |
| 是 | 无 |
| 是 | 无 |
| 是:可以以二进制字符串为输入。 | 无 |
| 是:可以以二进制字符串为输入。 | 无 |
| 否 | 不涉及 |
| 否 | 不涉及 |
| 否 | 不涉及 |
| 是 | 该函数的第一个参数需要是字符类型,非字符类型可能会产生与MySQL不一致的结果。 |
| 否 | 不涉及 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是:可以以二进制字符串为输入。 | 无 |
| 是 | LIKE不受校对规则的影响。 |
| 否 | 不涉及 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 否 | 不涉及 |
| 否 | 不涉及 |
| 是:可以以二进制字符串为输入。 | 无 |
| 是 |
|
| 否 | 不涉及 |
| 是 | MySQL中 |
| 是:可以以二进制字符串为输入。 | 无 |
| 是 | 无 |
| 是 | 无 |
| 否 | 不涉及 |
| 否 | 不涉及 |
| 否 | 不涉及 |
| 否 | 不涉及 |
| 否 | 不涉及 |
| 否 | 不涉及 |
| 是:可以以二进制字符串为输入。 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 否 | 不涉及 |
| 是 | 无 |
| 是 | 无 |
| 否 | 不涉及 |
| 是 | 无 |
| 是 | 无 |
| 是 | 不支持 |
| 是 | 不支持 |
| 是 | 无 |
| 是:可以以二进制字符串为输入。 | 该函数返回值为二进制字符串类型。 |
| 是 | 无 |
| 是 | 无 |
| 是 |
|
| 是 | 无 |
| 否 | 不涉及 |
日期函数
DuckDB分析实例中日期函数暂不接受字符串作为输入,需要先进行显式类型转换。例如:
对于表中字符串类型列:
SELECT ADDDATE(CAST(varchar_test as TIME), INTERVAL 1 DAY) FROM t1; SELECT ADDDATE(CAST(varchar_test as DATE), INTERVAL 1 DAY) FROM t1; SELECT ADDDATE(CAST(varchar_test as DATETIME), INTERVAL 1 DAY) FROM t1;
对于字符串字面值常量:
SELECT ADDDATE(TIME '12:00:00', INTERVAL 1 DAY) FROM t1; SELECT ADDDATE(DATE '2020-01-01', INTERVAL 1 DAY) FROM t1; SELECT ADDDATE(TIMESTAMP '2020-01-01 12:00:00', INTERVAL 1 DAY) FROM t1;
函数名 | 是否支持 | 使用限制 |
| 是 | 当ADDDATE函数的第一个参数是TIME类型时,例如 |
| 是 | 如果返回值超出DuckDB分析实例的时间类型数据的取值范围,会产生结果不一致的问题。 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 当DATE_ADD函数的第一个参数是TIME类型时,例如 |
| 是 | 不支持 |
| 是 | 同 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 无 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 年份超过9999暂不支持。 |
| 是 | 年份超过9999暂不支持。 |
| 是 | 无 |
| 是 | 如果返回值超出DuckDB分析实例的时间类型数据的取值范围,会产生结果不一致的问题。 |
| 是 | 无 |
| 是 |
|
| 是 | 同 |
| 是 | 如果返回值超出DuckDB分析实例的时间类型数据的取值范围,会产生结果不一致的问题。 |
| 是 | 无 |
| 否 | 无 |
| 是 | 无 |
| 是 | 不支持DAY TIME格式的输入,例如: |
| 否 | 无 |
| 否 | 不涉及 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
JSON函数
函数名 | 是否支持 | 使用限制 |
| 是 | 无 |
| 否 | 不涉及 |
| 否 | 不涉及 |
| 否 | 不涉及 |
| 否 | 不涉及 |
| 是 | 无 |
| 是 | 无 |
| 否 | 不涉及 |
| 是 | 无 |
| 是 | 无 |
| 否 | 不涉及 |
| 是 | 仅支持两个JSON进行合并,合并后JSON的字段顺序可能与MySQL中不同。 |
| 否 | 不涉及 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 是 | 无 |
| 否 | 不涉及 |
| 否 | 不涉及 |
| 否 | 不涉及 |
| 否 | 不涉及 |
| 否 | 不涉及 |
| 否 | 不涉及 |
| 否 | 不涉及 |
| 否 | 不涉及 |
| 否 | 不涉及 |
| 否 | 不涉及 |
| 否 | 不涉及 |
| 是 | 无 |
| 否 | 不涉及 |
| 否 | 不涉及 |
其他限制
DuckDB分析实例不支持视图查询(View)。