このトピックでは、DuckDB 分析エンジンを使用する ApsaraDB RDS for MySQL インスタンスの互換性について説明します。
サポートされているデータ型
型 | MySQL データ型 | 互換性に関する注意 |
数値型 |
| 互換 |
| 互換 | |
| 互換 | |
| 互換 | |
| 互換 | |
| 互換 | |
| 互換 | |
|
| |
文字型 |
| UTF-8 文字セットと照合順序のみがサポートされています。 |
| 互換 | |
| 互換 | |
| 互換 | |
| 互換 | |
バイナリ文字型 |
| 互換 |
| 互換 | |
| 互換 | |
時間型 |
| 互換 |
| 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);間隔単位
次の間隔単位はサポートされていません。
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` 式で、`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 型、および日付型はサポートされていません。 |
| はい | 制限なし |
| はい | 制限なし |
| はい | 複数列の |
| いいえ | N/A |
| いいえ | N/A |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
数値関数
数値関数は BOOLEAN 型をサポートしていません。
関数名 | サポートされている | 制限 |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい |
|
| いいえ | N/A |
| はい | 制限なし |
| はい | 制限なし |
| いいえ | N/A |
| はい | 制限なし |
| はい | 制限なし |
| いいえ | N/A |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| いいえ | N/A |
文字列関数
DuckDB 分析インスタンスは、BLOB や VARBINARY などのバイナリ文字列と、VARCHAR、TEXT、JSON などの通常文字列を厳密に区別します。したがって、次の文字列関数は入力として通常文字列のみを受け入れ、バイナリ文字列は受け入れません。バイナリ文字列を受け入れることができる関数については、特別な注意が記載されています。
関数名 | サポートされている | 制限 |
| はい | 制限なし |
| はい | MySQL では、 |
| はい | 制限なし |
| いいえ | N/A |
| はい | 制限なし |
| はい | 制限なし |
| はい: バイナリ文字列を入力として受け入れることができます。 | 制限なし |
| はい: バイナリ文字列を入力として受け入れることができます。 | 制限なし |
| いいえ | N/A |
| いいえ | N/A |
| いいえ | N/A |
| はい | この関数の最初のパラメーターは文字型でなければなりません。非文字型は MySQL と一致しない結果を生成する可能性があります。 |
| いいえ | N/A |
| はい | この関数は Base64 デコードルールを使用します。デコードに失敗した場合、エラーが返されます。 |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい: バイナリ文字列を入力として受け入れることができます。 | 制限なし |
| はい | `LIKE` は照合順序ルールの影響を受けません。 |
| いいえ | N/A |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| いいえ | N/A |
| いいえ | N/A |
| はい: バイナリ文字列を入力として受け入れることができます。 | 制限なし |
| はい |
|
| いいえ | N/A |
| はい | MySQL では、 |
| はい: バイナリ文字列を入力として受け入れることができます。 | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| いいえ | N/A |
| いいえ | N/A |
| いいえ | N/A |
| いいえ | N/A |
| いいえ | N/A |
| いいえ | N/A |
| はい: バイナリ文字列を入力として受け入れることができます。 | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| いいえ | N/A |
| はい | 制限なし |
| はい | 制限なし |
| いいえ | N/A |
| いいえ | N/A |
| はい | 制限なし |
| はい | 制限なし |
| はい | 構文 |
| はい | 構文 |
| はい | 制限なし |
| はい: バイナリ文字列を入力として受け入れることができます。 | この関数はバイナリ文字列を返します。 |
| はい | 制限なし |
| はい | 制限なし |
| はい |
|
| はい | 制限なし |
| いいえ | N/A |
日付関数
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` 関数の最初のパラメーターが |
| はい | 戻り値が DuckDB 分析インスタンスの時間データ型の有効値を超えた場合、結果に一貫性がなくなります。 |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい |
|
| はい |
|
| はい |
|
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| いいえ | 該当なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 9999 を超える年はサポートされていません。 |
| はい | 9999 を超える年はサポートされていません。 |
| はい | 制限なし |
| はい | 戻り値が DuckDB 分析インスタンスの時間データ型の範囲を超えた場合、結果に一貫性がなくなります。 |
| はい | 制限なし |
| はい |
|
| はい |
|
| はい | 戻り値が DuckDB 分析インスタンスの時間データ型の範囲を超えた場合、結果に一貫性がなくなります。 |
| はい | 制限なし |
| いいえ | 該当なし |
| はい | 制限なし |
| はい | DAY TIME フォーマットの入力はサポートされていません。例: |
| いいえ | 該当なし |
| いいえ | 該当なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
JSON 関数
関数名 | サポート | 制限 |
| はい | 制限なし |
| いいえ | 該当なし |
| いいえ | 該当なし |
| いいえ | 該当なし |
| いいえ | 該当なし |
| はい | 制限なし |
| はい | 制限なし |
| いいえ | 該当なし |
| はい | 制限なし |
| はい | 制限なし |
| いいえ | 該当なし |
| はい | 2 つの JSON オブジェクトのマージのみをサポートします。マージされた JSON オブジェクトのフィールドの順序は、MySQL の順序とは異なる場合があります。 |
| いいえ | 該当なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| いいえ | 該当なし |
| いいえ | 該当なし |
| いいえ | 該当なし |
| いいえ | 該当なし |
| いいえ | 該当なし |
| いいえ | 該当なし |
| いいえ | 該当なし |
| いいえ | 該当なし |
| いいえ | 該当なし |
| いいえ | 該当なし |
| いいえ | 該当なし |
| はい | 制限なし |
| いいえ | 該当なし |
| いいえ | 該当なし |
ウィンドウ関数
関数名 | サポート | 制限 |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
| はい | 制限なし |
その他の制限
DuckDB 分析インスタンスはビュークエリをサポートしていません。