类型转换函数
Elastic Stack Serverless
用于将一种数据类型的表达式转换为另一种数据类型的函数。
CAST(
expression
AS data_type)
- 要转换的表达式。 如果
null
,则函数返回null
。 - 要转换为的目标数据类型
描述:将给定表达式的结果强制转换为目标数据类型。 如果无法进行强制转换(例如,因为目标类型太窄或因为值本身无法转换),则查询将失败。
SELECT CAST('123' AS INT) AS int;
int
---------------
123
SELECT CAST(123 AS VARCHAR) AS string;
string
---------------
123
SELECT YEAR(CAST('2018-05-19T11:23:45Z' AS TIMESTAMP)) AS year;
year
---------------
2018
重要提示
ANSI SQL 和 Elasticsearch SQL 类型都受支持,前者优先。 这只会影响 FLOAT
,因为命名冲突,它被解释为 ANSI SQL,因此在 Elasticsearch 中映射到 double
,而不是 float
。 要获得 Elasticsearch float
,请执行到其 SQL 等效项 real
类型的强制转换。
CONVERT(
expression,
data_type)
- 要转换的表达式。 如果
null
,则函数返回null
。 - 要转换为的目标数据类型
描述:与 CAST
的工作方式完全相同,只是语法略有不同。 此外,除了标准的数据类型外,它还支持相应的ODBC 数据类型。
SELECT CONVERT('123', SQL_INTEGER) AS int;
int
---------------
123
SELECT CONVERT('123', INTEGER) AS int;
int
---------------
123