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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Cast、Convert  都是 Sql Server 2010 中的内置转换函数,Parse 是 Sql Server 2012新增的转换函数 其作用是:一种数据类型转换为另一种数据类型。其中前两者的差别较小,但   Parse 为  Sql Server 2012 新增函数,既然功能接近,那我们把这3个函数拿出来进行比较分析

语法结构:

1. Cast  

语法结构:CAST ( expression AS data_type [ ( length ) ] )

2. Convert

语法结构:CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

3. Parse

语法结构:PARSE ( string_value AS data_type [ USING culture ] )

其中,Parse 为 Sql Server 的新特性 expression  必须要为被转换类型的字符串形式


性能分析:

总结:

1. Convert 和 Cast 的区别

CONVERT是专对SQL Server使用的,使日期与时间值,小数之间转换具有更宽的灵活性。

CAST是两种功能中更具ANSI标准的功能,即虽然更具便携性(比如,使用CAST的函数能更容易的被其它数据库软件使用),但功能相对弱一些。不过,当小数转化为数值,并保留原始表达式中的小数数值时,仍然需要使用CAST


2. Convert 和 Parse 的区别

两者除了语法的区别,就是功能上面的区别,Convert 功能更强大,Parse 则为 Sql Server 2012 新增的功能,同时功能弱小很多的,只能将 字符串 转换为 数字类型 或者 日期类型,因为数字类型 或 日期类型长度都很小的,所以 Parse 所带来的性能几乎不可能有大的改变的,之后我也做了大量的比较,发现 Parse  是在绝大多数情况下都是可以替代的


3. 综合比较

a.  如果 是做针对 Sql Server 的做开发,建议只用 Convert 方法
b.  如果考虑语句跨平台,则尽量用 Cast,如 SQL 语句既能在 Sql Server 上执行,又能在 MySql 上面执行
c.  Parse 在 Sql Server 2012 中就是一个鸡肋,经过1 下午的实战研究和翻阅MSDN,都没有找到它的优势,如果比语法,Cast 的语法结构和它一样,如果比功能,又太弱小,完全不能和Cast 和 Convert 做比较,不知道哪位大侠能够补充Parse的其他优势!

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

2 个回复

倒序浏览
我觉得在使用parse时先应该用typeparse检测下能不能转换,然后在使用

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
我觉得转载人家文章的时候加个【转】是比较合适的,Convert (百度的技术文章,楼主的文章)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马