SQL中的cast和convert的用法和区别以及时间转换
在 mysql 操作中我们经常需要对数据进行类型转换,此时我们应该使用的是cast()或convert()。两者的对比:
相同点:都是进行数据类型转换,实现的功能基本等同。
不同点:两者的语法不同,cast(value as type) 、 convert(value,type)
一、语法
1、使用 CAST:CAST ( expression AS data_type )
2、使用 CONVERT:CONVERT (data_type[(length)], expression [, style])
3、参数说明:
(1)expression:是任何有效的表达式。
(2)data_type:目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型。
(3)length:nchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。
(4)style:日期格式样式,借以将 datetime 或 smalldatetime 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型);或者字符串格式样式,借以将 float、real、money 或 smallmoney 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。
二、cast和convert的代码示例
select CAST('123' as int) -- 123
select CONVERT(int, '123') -- 123
select CAST(123.4 as int) -- 123
select CONVERT(int, 123.4) -- 123
select CAST('123.4' as int)
select CONVERT(int, '123.4')
-- Conversion failed when converting the varchar value '123.4' to data type int.
select CAST('123.4' as decimal) -- 123
select CONVERT(decimal, '123.4') -- 123
select CAST('123.4' as decimal(9,2)) -- 123.40
select CONVERT(decimal(9,2), '123.4') -- 123.40
declare @Num money
set @Num = 1234.56
select CONVERT(varchar(20), @Num, 0) -- 1234.56
select CONVERT(varchar(20), @Num, 1) -- 1,234.56
select CONVERT(varchar(20), @Num, 2) -- 1234.5600
三、SQL中CAST和CONVERT用在时间转换上的区别
cast 和 convert 都是用来转化数据类型的,功能上是差不多的。
在时间转化中一般用到 convert,因为它比 cast 多加了一个 style,可以转化成不同时间的。打个简单的例子吧,比方说查找一下当前的时间,select getdate(),而我们只需要到年月日而已,这时我们就可以把它转化为 select convert(varchar(100),GETDATE(),111) 转化成我们需要的,而 select CAST(GETDATE() as varchar(30)) cast 就没办法或者是转化过程比较繁琐。
convert 时间后面的 style 值不同产生的时间格式也不一样,具体可参看网站http://www.w3school.com.cn/sql/func_convert.asp
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2017-09-03 浅析SQL的窗口函数是什么,怎么使用,为什么需要使用窗口函数以及利用窗口函数解决TopN问题
2017-09-03 浅析Nginx打开目录浏览功能(autoindex)以及alias和root的理解、nginx静态服务访问