语法结构: 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 新增的功能,同时功能弱小很多的,只能将 字符串 转换为 数字类型 或者 日期类型,因为数字类型 或 日期类型长度都很小的,所以 Parse 所带来的性能几乎不可能有大的改变的,之后我也做了大量的比较,发现 Parse 是在绝大多数情况下都是可以替代的 3. 综合比较 a. 如果 是做针对 Sql Server 的做开发,建议只用 Convert 方法 b. 如果考虑语句跨平台,则尽量用 Cast,如 SQL 语句既能在 Sql Server 上执行,又能在 MySql 上面执行 c. Parse 在 Sql Server 中就是一个鸡肋,经过1 下午的实战研究和翻阅MSDN,都没有找到它的优势,如果比语法,Cast 的语法结构和它一样,如果比功能,又太弱小,完全不能和Cast 和 Convert 做比较,所以,您就把 Parse 忘记掉吧 性能分析所做的实验: 1. Convert 和 Parse 转换为字符串的比较 其中 name 为 nvarchar() 的一个一段,值为: 执行过之后,会发现,两者的执行计划完全相同,无论是对 CPU 的消耗,还是对 IO的消耗,没有任何性能差别 2. Money 和 DateTime 类型的转换比较 3. Parse 的专利,字符型日期到 datetime 的转换 在性能方面同样没什么区别,但是比较功能时,Parse 却要比 Convert 错太多 严重怀疑, Parse 本人并没有找到太多的优势和应用场景,或者由于本人才疏学浅,找不到更好的,有懂得,请赐教
推荐整理分享Sql Server 2012 转换函数的比较(Cast、Convert和Parse),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!
SQL语句分组获取记录的第一条数据的方法 使用Northwind数据库首先查询Employees表查询结果:city列里面只有5个城市使用ROW_NUMBER()OVER(PARTITIONBYCOL1ORDERBYCOL2)先进行分组注:根据COL1分组,在分组内部
一列保存多个ID(将多个用逗号隔开的ID转换成用逗号隔开的名称) 背景:在做项目时,经常会遇到这样的表结构在主表的中有一列保存的是用逗号隔开ID。如,当一个员工从属多个部门时、当一个项目从属多个城市时
多列复合索引的使用 绕过微软sql server的一个缺陷 然而,微软sqlserver在处理这类索引时,有个重要的缺陷,那就是把本该编译成索引seek的操作编成了索引扫描,这可能导致严重性能下降举个例子来说明