当前位置:七道奇文章资讯数据防范MSSQL防范
日期:2012-07-30 15:00:00  来源:本站整理

Sql Server 2012 转换函数的对比(Cast、Convert和Parse)[MSSQL防范]

赞助商链接



  本文“Sql Server 2012 转换函数的对比(Cast、Convert和Parse)[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
语法构造:

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. Convert 和 Parse 转换为字符串的对比
复制代码 代码以下:
DBCC FreeProcCache
set statistics profile on
select top 1 parse(name as bigint) from test_Parse
select top 1 convert(bigint,name) from test_Parse

此中 name 为 nvarchar(1000) 的一个一段,值为:1231238912378912128
履行过之后,会发现,二者的履行筹划完好相同,无论是对 CPU 的损耗,还是对 IO的损耗,没有任何性能差别

2. Money 和 DateTime 范例的转换对比
复制代码 代码以下:
-- DateTime
DBCC FreeProcCache
declare @date varchar(100) = '2012/07/19 14:57:09.760'
select CONVERT(datetime,@date) as date
select Parse(@date as datetime using 'zh-CN') as date
--Money
SELECT PARSE('
  以上是“Sql Server 2012 转换函数的对比(Cast、Convert和Parse)[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • Windows 搭配 IIS7 PHP MySQL 环境
  • sqlserver索引的原理及索引成立的注意事项小结
  • SQL Join的一些总结(实例)
  • SQL的Join利用图解教程
  • SQL中JOIN和UNION辨别、用法及示例介绍
  • 关于SQL中CTE(公用表表达式)(Common Table Expression)的总结
  • mysql Out of memory (Needed 16777224 bytes)的错误办理
  • mysql提醒[Warning] Invalid (old?) table or database name问题的办理办法
  • mysql启用skip-name-resolve情势时呈现Warning的处理办法
  • mysql启用skip-name-resolve情势时呈现Warning的处理办法
  • MySQL Order By语法介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        100%(1)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .