欢迎光临
专业Linux运维二十年

MySQL 中的 CAST 函数详解及常见用法

        MySQL 中的 CAST 函数详解

        CAST 函数是 MySQL 中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型。

        一、基本语法

        CAST(expression AS type)
        

        CONVERT(expression, type)
        

        这两种语法功能相同,可以互换使用。

        二、支持的数据类型

        CAST 函数支持转换为以下数据类型:

        三、常见用法示例

        1. 字符串转数字

        SELECT CAST('123' AS SIGNED);      -- 转换为有符号整数,结果为 123
        SELECT CONVERT('45.67', DECIMAL(5,2)); -- 转换为带2位小数的十进制数,结果为 45.67
        

        2. 数字转字符串

        SELECT CAST(123 AS CHAR);          -- 转换为字符串,结果为 '123'
        SELECT CAST(123.45 AS CHAR(10));   -- 转换为长度为10的字符串,结果为 '123.45'
        

        3. 日期时间转换

        SELECT CAST('2023-08-20' AS DATE); -- 转换为日期类型
        SELECT CAST(NOW() AS CHAR);        -- 将当前日期时间转为字符串
        

        4. 布尔值转换

        SELECT CAST(1 AS UNSIGNED);        -- 结果为 1
        SELECT CAST(0 AS SIGNED);          -- 结果为 0
        

        5. 二进制转换

        SELECT CAST('MySQL' AS BINARY);    -- 转换为二进制字符串
        SELECT CAST(123 AS BINARY);        -- 将数字转为二进制
        

        四、特殊转换案例

        1. 处理 NULL 值

        SELECT CAST(NULL AS SIGNED);       -- 结果为 NULL
        

        2. 截断处理

        SELECT CAST('123.456' AS DECIMAL(5,2)); -- 结果为 123.46 (四舍五入)
        SELECT CAST('123.456' AS DECIMAL(5,1)); -- 结果为 123.5 (四舍五入)
        

        3. 转换失败处理

        SELECT CAST('abc' AS SIGNED);      -- 结果为 0 (无法转换时返回0)
        SELECT CAST('2023-02-30' AS DATE); -- 结果为 NULL (无效日期)
        

        五、实际应用场景

        1. 类型安全的比较

        -- 避免字符串和数字的隐式转换
        SELECT * FROM products WHERE CAST(price AS CHAR) LIKE '12%';
        

        2. 格式化输出

        SELECT 
            product_name,
            CONCAT('$', CAST(price AS DECIMAL(10,2))) AS formatted_price
        FROM products;
        

        3. 数据迁移和清洗

        -- 将字符串列转为数字进行计算
        UPDATE orders 
        SET total = CAST(subtotal AS DECIMAL(10,2)) + CAST(tax AS DECIMAL(10,2));
        

        4. 动态SQL处理

        SET @str_value = '123';
        SELECT * FROM table WHERE id = CAST(@str_value AS SIGNED);
        

        六、与 CONVERT 函数的区别

        CAST 和 CONVERT 函数功能基本相同,但有细微差别:

        七、性能考虑

        八、与其他数据库的兼容性

        CAST 函数是 MySQL 中处理数据类型转换的强大工具,合理使用可以确保数据的一致性和查询的正确性。在需要明确控制数据类型转换的场景下,CAST 函数是必不可少的。

        到此这篇关于MySQL 中的 CAST 函数详解的文章就介绍到这了,

        脚本之家
        赞(0) 打赏
        未经允许不得转载:Linux老运维 » MySQL 中的 CAST 函数详解及常见用法

        觉得文章有用就打赏一下文章作者

        非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

        支付宝扫一扫

        微信扫一扫