一起了解--CAST函数

发布于:2025-06-13 ⋅ 阅读:(16) ⋅ 点赞:(0)

CAST函数在SQL中用途广泛,不仅可以转换为数值类型,还可以在多种场景下用于数据类型转换。以下是一些常见的用途和示例:

类型转换

使用CAST函数可以在查询数据库时根据需要调整数据格式或类型

CAST(expression AS target_type)
    • expression 是你希望转换的原始值或者列名。
    • target_type 是你希望将原始值转换成的目标数据类型。
将整数转换为小数,或小数转换为整数。
SELECT CAST(10 AS DECIMAL(10,2)); -- 结果:10.00
SELECT CAST(10.5 AS INT); -- 结果:10
字符串转换为数值

将存储为字符串的数值转换为数值类型以便进行数学运算。

SELECT CAST('123.45' AS DECIMAL(10,2)); -- 结果:123.45
数值转换为字符串

将数值格式化为特定的字符串格式。

SELECT CAST(123.45 AS CHAR); -- 结果:'123.45'
日期和时间转换

将日期时间类型转换为字符串,或反之。

SELECT CAST('2025-06-12' AS DATE); -- 将字符串转换为日期
SELECT CAST(NOW() AS CHAR); -- 将当前日期时间转换为字符串
布尔值转换

在支持布尔值的数据库中,可以将01转换为布尔值。

SELECT CAST(1 AS BOOLEAN); -- 结果:TRUE
SELECT CAST(0 AS BOOLEAN); -- 结果:FALSE
JSON转换

在支持JSON的数据库中,将JSON字符串转换为JSON类型。

SELECT CAST('{"key":"value"}' AS JSON);

跨数据库兼容性

在不同数据库系统之间迁移数据时,CAST可以确保数据类型的一致性。

解决类型不匹配问题

在SQL查询中,如果操作符或函数要求特定的数据类型,CAST可以用来解决类型不匹配的问题。

在SQL表达式中嵌套使用

CAST可以与其他函数结合使用,提供更灵活的数据处理能力。

SELECT ROUND(CAST(SUM(resolved_tickets) AS DECIMAL(10,2)) / SUM(wkord) * 100, 2);

在SQL注入防护中使用

在某些情况下,CAST可以用来确保输入的类型正确,从而减少SQL注入的风险。

在条件语句中使用

WHERE子句或CASE语句中转换数据类型。

SELECT *
FROM tickets
WHERE CAST(resolved AS DATE) = '2025-06-12';

不同的数据库系统对CAST的支持和语法略有不同:

总之,CAST函数是一个非常灵活且强大的工具,可以帮助你在SQL中处理各种数据类型转换需求。