PostgreSQL CAST用于数据类型转换,语法为SELECT CAST(表达式 AS 目标类型),也可用::简写,如'123'::INTEGER;常用于字符串与数字、日期间转换,如CAST('2024-01-01' AS DATE)、456::TEXT、CAST(3.9 AS INTEGER)结果为3,支持时间戳转字符串NOW()::TEXT,但非法格式如'abc'转INTEGER会报错,需确保数据合法或预判处理。

PostgreSQL CAST 是一种用于将一个数据类型转换为另一个数据类型的操作。在查询中,当你需要把字符串转成数字、日期转成字符串,或者在不同数据类型之间进行比较或计算时,就会用到 CAST。
基本语法
CAST 的标准语法如下:
SELECT CAST(表达式 AS 目标数据类型);例如,将字符串 '123' 转换为整数:
SELECT CAST('123' AS INTEGER);使用 :: 简写语法
PostgreSQL 还支持一种更简洁的类型转换写法,使用双冒号 :::
SELECT '123'::INTEGER;这和使用 CAST 是等效的,但更简短,常见于 PostgreSQL 的日常使用中。
常见的转换场景
-
字符串转日期:将 '2024-01-01' 转为 DATE 类型
SELECT CAST('2024-01-01' AS DATE); -
数字转文本:便于拼接或输出
SELECT 456::TEXT; -
浮点数转整数:截断小数部分
SELECT CAST(3.9 AS INTEGER); -- 结果是 3 -
时间戳与字符串互转
SELECT NOW()::TEXT;
注意事项
并不是所有类型都能直接转换。如果值不符合目标类型的格式,会报错。比如:
SELECT CAST('abc' AS INTEGER); -- 错误:无法转换建议在转换前确保数据格式合法,或使用 TRY_CAST 类似的逻辑(需通过条件判断或函数实现)来避免错误。
基本上就这些。CAST 在数据清洗、报表生成和跨类型查询中非常实用,掌握它能让你更灵活地处理不同类型的数据。










