黑马程序员技术交流社区
标题:
求解SQL中CAST与CONVERT的区别
[打印本页]
作者:
李荣壮
时间:
2011-11-4 23:13
标题:
求解SQL中CAST与CONVERT的区别
看MSDN上面的解释,晕了,麻烦来点通俗的。。。
该贴已经同步到
李荣壮的微博
作者:
何荣智
时间:
2011-11-5 01:06
使用 CAST:
CAST ( expression AS data_type )
使用 CONVERT:
CONVERT (data_type[(length)], expression [, style])
可以看到,convert比CAST多了一个style,在转化成日期类型时,因为需要格式要求,cast就不合适了,应该还有其他一些需要转化格式的,比如金钱等等,这个看看帮助就知道了。
其他时候,二者实现的功能都一样。 都是转化类型的函数
作者:
何荣智
时间:
2011-11-5 01:06
使用 CAST:
CAST ( expression AS data_type )
使用 CONVERT:
CONVERT (data_type[(length)], expression [, style])
可以看到,convert比CAST多了一个style,在转化成日期类型时,因为需要格式要求,cast就不合适了,应该还有其他一些需要转化格式的,比如金钱等等,这个看看帮助就知道了。
其他时候,二者实现的功能都一样。 都是转化类型的函数
作者:
黄威
时间:
2011-11-5 09:31
在SQL SERVER中,cast和convert函数都可用于类型转换,其功能是相同的,
只是语法不同.
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
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2