SQL中的cast和convert的用法和区别
程序员文章站
2022-04-14 08:48:41
...
一、语法:
1、使用 CAST
CAST ( expression AS data_type )
2、使用 CONVERT
CONVERT (data_type[(length)], expression [, style])
3、参数说明
expression
是任何有效的表达式。
data_type:
目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型。
length
nchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。
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
三、convert函数的style参数说明
1、Date 和 Time 样式
2、float 和 real 样式
3、money 和 smallmoney 样式
推荐阅读
-
mysql中int、bigint、smallint 和 tinyint的区别详细介绍
-
C#中Action和Func的区别
-
java 中sendredirect()和forward()方法的区别
-
Android Activity中onStart()和onResume()的区别分析
-
MySql中的IFNULL、NULLIF和ISNULL用法详解
-
Java中HashMap和Hashtable及HashSet的区别
-
c#方法中调用参数的值传递方式和引用传递方式以及ref与out的区别深入解析
-
浅谈C#中堆和栈的区别(附上图解)
-
MySQL中interactive_timeout和wait_timeout的区别
-
C#中string和StingBuilder内存中的区别实例分析