Spec-Zone.ru › DuckDB

Приведение типов

Приведение типов относится к операции преобразования значения в определенном типе данных к соответствующему значению в другом типе данных. Приведение типов может быть неявным или явным. Здесь описывается синтаксис явного приведения.

Дополнительную информацию о приведении типов можно найти на странице преобразование типов.

Явное приведение

Стандартный синтаксис SQL для явного приведения типов — CAST(expr AS TYPENAME), где TYPENAME — имя (или псевдоним) одного из типов данных DuckDB. DuckDB также поддерживает сокращенную запись expr::TYPENAME, которая также присутствует в PostgreSQL.

SELECT CAST(i AS VARCHAR) AS i FROM generate_series(1, 3) tbl(i);
i
1
2
3
SELECT i::DOUBLE AS i FROM generate_series(1, 3) tbl(i);
i
1.0
2.0
3.0

Правила приведения типов

Не все преобразования возможны. Например, невозможно преобразовать INTEGER в DATE. Приведения типов также могут вызывать ошибки, когда преобразование не может быть выполнено успешно. Например, попытка приведения строки 'hello' к INTEGER приведет к ошибке.

SELECT CAST('hello' AS INTEGER);
Conversion Error: Could not convert string 'hello' to INT32

Точное поведение приведения зависит от исходного и целевого типов. Например, при приведении из VARCHAR в любой другой тип будет выполнена попытка преобразования строки.

TRY_CAST

TRY_CAST можно использовать, когда предпочтительно не вызывать ошибку, а вместо этого вернуть значение NULL. TRY_CAST никогда не вызовет ошибку и вместо этого вернет NULL, если преобразование невозможно.

SELECT TRY_CAST('hello' AS INTEGER) AS i;
i
NULL

© Copyright 2018–2024 Stichting DuckDB Foundation
Licensed under the MIT License.
https://duckdb.org/docs/sql/expressions/cast.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API