国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > SQL Server > 正文

Sql Server 2012 轉(zhuǎn)換函數(shù)的比較(Cast、Convert和Parse)

2020-07-25 13:14:28
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
語(yǔ)法結(jié)構(gòu):

1. Cast
語(yǔ)法結(jié)構(gòu):CAST ( expression AS data_type [ ( length ) ] )
2. Convert
語(yǔ)法結(jié)構(gòu):CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
3. Parse
語(yǔ)法結(jié)構(gòu):PARSE ( string_value AS data_type [ USING culture ] )
其中,Parse 為 Sql Server 的新特性 expression 必須要為被轉(zhuǎn)換類(lèi)型的字符串形式

性能分析:

總結(jié):

1. Convert 和 Cast 的區(qū)別
CONVERT是專(zhuān)對(duì)SQL Server使用的,使日期與時(shí)間值,小數(shù)之間轉(zhuǎn)換具有更寬的靈活性。
CAST是兩種功能中更具ANSI標(biāo)準(zhǔn)的功能,即雖然更具便攜性(比如,使用CAST的函數(shù)能更容易的被其它數(shù)據(jù)庫(kù)軟件使用),但功能相對(duì)弱一些。不過(guò),當(dāng)小數(shù)轉(zhuǎn)化為數(shù)值,并保留原始表達(dá)式中的小數(shù)數(shù)值時(shí),仍然需要使用CAST
2. Convert 和 Parse 的區(qū)別
兩者除了語(yǔ)法的區(qū)別,就是功能上面的區(qū)別,Convert 功能更強(qiáng)大,Parse 則為 Sql Server 2012 新增的功能,同時(shí)功能弱小很多的,只能將 字符串 轉(zhuǎn)換為 數(shù)字類(lèi)型 或者 日期類(lèi)型,因?yàn)閿?shù)字類(lèi)型 或 日期類(lèi)型長(zhǎng)度都很小的,所以 Parse 所帶來(lái)的性能幾乎不可能有大的改變的,之后我也做了大量的比較,發(fā)現(xiàn) Parse 是在絕大多數(shù)情況下都是可以替代的
3. 綜合比較
a. 如果 是做針對(duì) Sql Server 的做開(kāi)發(fā),建議只用 Convert 方法
b. 如果考慮語(yǔ)句跨平臺(tái),則盡量用 Cast,如 SQL 語(yǔ)句既能在 Sql Server 上執(zhí)行,又能在 MySql 上面執(zhí)行
c. Parse 在 Sql Server 2012 中就是一個(gè)雞肋,經(jīng)過(guò)1 下午的實(shí)戰(zhàn)研究和翻閱MSDN,都沒(méi)有找到它的優(yōu)勢(shì),如果比語(yǔ)法,Cast 的語(yǔ)法結(jié)構(gòu)和它一樣,如果比功能,又太弱小,完全不能和Cast 和 Convert 做比較,所以,您就把 Parse 忘記掉吧

性能分析所做的實(shí)驗(yàn):

1. Convert 和 Parse 轉(zhuǎn)換為字符串的比較
復(fù)制代碼 代碼如下:

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) 的一個(gè)一段,值為:1231238912378912128
執(zhí)行過(guò)之后,會(huì)發(fā)現(xiàn),兩者的執(zhí)行計(jì)劃完全相同,無(wú)論是對(duì) CPU 的消耗,還是對(duì) IO的消耗,沒(méi)有任何性能差別

2. Money 和 DateTime 類(lèi)型的轉(zhuǎn)換比較
復(fù)制代碼 代碼如下:

-- 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(' 主站蜘蛛池模板: 读书| 岳阳市| 高台县| 塔城市| 开江县| 永城市| 盐边县| 申扎县| 册亨县| 临潭县| 长治市| 银川市| 林周县| 繁昌县| 尤溪县| 女性| 兴化市| 柯坪县| 永春县| 永胜县| 手机| 万全县| 黄大仙区| 洱源县| 晋中市| 驻马店市| 新竹市| 静宁县| 比如县| 浪卡子县| 循化| 阿坝县| 平昌县| 双辽市| 台南县| 井冈山市| 通河县| 梁山县| 社会| 尼勒克县| 石城县|