A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李荣壮 黑马帝   /  2011-11-4 23:13  /  2631 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看MSDN上面的解释,晕了,麻烦来点通俗的。。。

该贴已经同步到 李荣壮的微博

3 个回复

倒序浏览
使用 CAST:
CAST ( expression AS data_type )
使用 CONVERT:
CONVERT (data_type[(length)], expression [, style])
可以看到,convert比CAST多了一个style,在转化成日期类型时,因为需要格式要求,cast就不合适了,应该还有其他一些需要转化格式的,比如金钱等等,这个看看帮助就知道了。
其他时候,二者实现的功能都一样。 都是转化类型的函数
回复 使用道具 举报
使用 CAST:
CAST ( expression AS data_type )
使用 CONVERT:
CONVERT (data_type[(length)], expression [, style])
可以看到,convert比CAST多了一个style,在转化成日期类型时,因为需要格式要求,cast就不合适了,应该还有其他一些需要转化格式的,比如金钱等等,这个看看帮助就知道了。
其他时候,二者实现的功能都一样。 都是转化类型的函数
回复 使用道具 举报
在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
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马