SQL Server隐式类型转换解析:显式与隐式转换示例问询
SQL Server 显式与隐式数据转换示例
一、显式转换示例
显式转换是通过CAST()或CONVERT()函数主动指定类型转换规则的操作,常见示例包括:
- 日期字符串转日期类型:
CAST('2014-01-01' AS DATE) - 日期转指定格式的字符串:
CONVERT(VARCHAR(10), GETDATE(), 120)(120代表yyyy-mm-dd格式) - 字符串转二进制image类型:
CAST('需要转换的文本内容' AS IMAGE) - datetime转float类型:
使用CAST():CAST(GETDATE() AS FLOAT)
使用CONVERT():CONVERT(FLOAT, GETDATE())说明:SQL Server中datetime转float时,整数部分代表从1900-01-01到目标日期的天数,小数部分代表当天时间占全天的比例(比如0.5对应中午12点)
二、隐式转换示例
隐式转换是SQL Server自动完成的类型转换,无需手动调用转换函数,常见示例包括:
- 字符串与数值的自动转换:执行
SELECT '123' + 456时,SQL Server会自动将字符串'123'转换为int类型,最终返回数值579 - 日期字符串与datetime的自动转换:
SELECT * FROM Orders WHERE OrderDate > '2024-01-01',这里字符串'2024-01-01'会被自动转换为datetime类型,与OrderDate字段进行比较 - 数值转字符串:执行
SELECT 123 + '456'时,数值123会被自动转换为varchar类型,最终返回字符串'123456'
注意:并非所有类型都支持隐式转换,比如image与varchar之间仅支持显式转换,隐式转换会触发类型不匹配错误
内容的提问来源于stack exchange,提问作者David542
相关产品推荐
相关产品推荐

