濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > Sql Server 2012 轉(zhuǎn)換函數(shù)的比較(Cast、Convert和Parse)

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

熱門標(biāo)簽:北京辦理400電話多少 溫州語音外呼系統(tǒng)代理 山西語音外呼系統(tǒng)價(jià)格 智能語音外呼系統(tǒng)哪個(gè)牌子好 南京電銷外呼系統(tǒng)運(yùn)營商 400電話申請(qǐng)需要開戶費(fèi)嗎 西安青牛防封電銷卡 威海智能語音外呼系統(tǒng) 重慶防封電銷機(jī)器人供應(yīng)商
語法結(jié)構(gòu):

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

性能分析:

總結(jié):

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

2. Money 和 DateTime 類型的轉(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('€345,98' AS money USING 'de-DE') AS Result
Select Convert(money,'€345,98',1) AS Result


3. Parse 的專利,字符型日期到 datetime 的轉(zhuǎn)換

復(fù)制代碼 代碼如下:

SELECT PARSE('Monday, 13 December 2010' AS datetime2 USING 'en-US') AS Result
SELECT PARSE('Monday, 13 December 2010' AS datetime2 USING 'zh-CN') AS Result
-- Cast 和 Convert 對(duì)這種類型的字符串都是不支持的
--SELECT cast('Monday, 13 December 2010' AS datetime2) AS Result
--SELECT Convert(datetime,'Monday, 13 December 2010') AS Result

在性能方面同樣沒什么區(qū)別,但是比較功能時(shí),Parse 卻要比 Convert 錯(cuò)太多
嚴(yán)重懷疑, Parse 本人并沒有找到太多的優(yōu)勢(shì)和應(yīng)用場(chǎng)景,或者由于本人才疏學(xué)淺,找不到更好的,有懂得,請(qǐng)賜教
您可能感興趣的文章:
  • SQL SERVER 2012新增函數(shù)之邏輯函數(shù)CHOOSE詳解
  • SQL SERVER 2012新增函數(shù)之字符串函數(shù)FORMAT詳解
  • SQL SERVER2012中新增函數(shù)之字符串函數(shù)CONCAT詳解
  • SqlServer2012中First_Value函數(shù)簡單分析
  • SqlServer2012中LEAD函數(shù)簡單分析
  • SQL Server 2012 開窗函數(shù)
  • SQL SERVER 2012新增函數(shù)之邏輯函數(shù)IIF

標(biāo)簽:中衛(wèi) 河源 宜春 新余 貸款群呼 黃山 濟(jì)寧 金昌

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Sql Server 2012 轉(zhuǎn)換函數(shù)的比較(Cast、Convert和Parse)》,本文關(guān)鍵詞  Sql,Server,2012,轉(zhuǎn)換,函數(shù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Sql Server 2012 轉(zhuǎn)換函數(shù)的比較(Cast、Convert和Parse)》相關(guān)的同類信息!
  • 本頁收集關(guān)于Sql Server 2012 轉(zhuǎn)換函數(shù)的比較(Cast、Convert和Parse)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    阿拉善盟| 大荔县| 福鼎市| 菏泽市| 保山市| 清远市| 尉氏县| 万全县| 禄丰县| 温州市| 称多县| 抚州市| 读书| 潮州市| 三原县| 霸州市| 邳州市| 富锦市| 全州县| 庄浪县| 额尔古纳市| 宕昌县| 台北市| 赤城县| 巨鹿县| 辽阳市| 华池县| 祁东县| 永定县| 临海市| 定兴县| 郁南县| 哈尔滨市| 乌兰察布市| 卓尼县| 郑州市| 陇川县| 磐石市| 汤阴县| 荔波县| 廉江市|