您好!欢迎访问家园网-www.jy.wang!

家园网

讲一下SQl中,cast()函数,词源角度讲下

网络 作者:本站 点击:

SQL 中 CAST() 函数详解(词源角度)


一、CAST() 是什么?

CAST() 是 SQL 中的类型转换函数,用于将一个数据类型的值转换为另一个数据类型

sql

SELECT CAST('123' AS INT);      -- 字符串 → 整数,结果:123SELECT CAST(3.14 AS VARCHAR);   -- 小数 → 字符串,结果:'3.14'SELECT CAST('2024-04-15' AS DATE);  -- 字符串 → 日期


二、词源拆解

单词词源含义
CAST古挪威语 kasta(扔、投掷)投射、铸造、转换

词源演变

text

古挪威语 kasta(扔、投掷)
        ↓
古英语 casten(扔、投掷、铸造)
        ↓
现代英语 cast(投射、铸造、分配角色)
        ↓
计算机科学 cast(数据类型转换)


三、cast 的原始含义与编程用法的关联

领域含义与 SQL CAST 的关联
冶金将熔化的金属倒入模具,铸造成新形状将一种数据类型"重塑"为另一种
戏剧给角色分配演员给值"分配"新的类型
光线投射影子或光线将值"投射"到新类型中
编程转换数据类型直接来源

核心比喻:就像把铁水倒进模具"铸造成"新形状一样,CAST() 把一个值"铸造"成新的数据类型。


四、语法

sql

CAST(expression AS target_type)

部分含义
expression要转换的值(可以是字段、常量、计算结果)
AS作为、成为(同样源自古英语)
target_type目标数据类型(如 INT、VARCHAR、DATE)

五、CAST vs CONVERT

对比项CASTCONVERT
词源古挪威语 kasta(铸造)拉丁语 convertere(转变)
标准SQL 标准SQL Server 特有
语法CAST(值 AS 类型)CONVERT(类型, 值, 格式)
格式控制❌ 不支持✅ 支持(如日期格式)

sql

-- CAST(标准写法)SELECT CAST(GETDATE() AS VARCHAR);-- CONVERT(SQL Server 特有,可指定格式)SELECT CONVERT(VARCHAR, GETDATE(), 120);  -- 120 = yyyy-mm-dd hh:mi:ss


六、同源词示例

单词词源含义与 CAST 的关系
cast古挪威语 kasta投掷、铸造、投射本词
castawaycast + away被抛弃的人被"扔"掉的人
caste葡萄牙语 casta种姓被"分配"的社会阶层
forecastfore + cast预测提前"投掷"想法
broadcastbroad + cast广播广泛"投掷"信号
podcastiPod + broadcast播客数字"广播"

七、常见用法示例

1、字符串转数字

sql

SELECT CAST('123' AS INT);           -- 123SELECT CAST('123.45' AS DECIMAL(5,2)); -- 123.45

2、数字转字符串

sql

SELECT CAST(123 AS VARCHAR);         -- '123'SELECT CAST(123.45 AS VARCHAR(10));  -- '123.45'

3、字符串转日期

sql

SELECT CAST('2024-04-15' AS DATE);   -- 2024-04-15

4、日期转字符串

sql

SELECT CAST(GETDATE() AS VARCHAR);   -- 'Apr 15 2024 2:30PM'

5、在计算中使用

sql

-- 整数除法默认返回整数,先转换再除SELECT CAST(5 AS DECIMAL) / 2;       -- 2.5SELECT 5/2;                           -- 2(整数除法)


八、CAST 字面意义的形象化

text

原始数据                   CAST 铸造                   目标类型
═══════════════════════════════════════════════════════════════

   '123'          ──────────→              123
  (字符串)        铸造模具          (整数)

   3.14           ──────────→            '3.14'
  (小数)          铸造模具           (字符串)

 '2024-04-15'     ──────────→          2024-04-15
  (字符串)        铸造模具            (日期类型)

就像把铁水倒入不同的模具铸造成不同形状,CAST() 把数据倒入"类型模具"铸造成不同的数据类型。


九、总结

问题答案
CAST() 是什么?SQL 类型转换函数
词源古挪威语 kasta(扔、投掷、铸造)
字面含义铸造、重塑形状
编程含义将一种数据类型"铸造"成另一种
与 CONVERT 区别CAST 是 SQL 标准,CONVERT 是 SQL Server 特有(可控制格式)
同源词broadcast(广播)、forecast(预测)、podcast(播客)

一句话总结CAST() 的词源来自古挪威语的"铸造"(把金属熔化后倒入模具成型),在 SQL 中意为将一个数据值"铸造"成新的数据类型——就像把数据倒进不同类型的模具,改变它的"形状"(数据类型)


标签: