亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

SQL Server中T-SQL 數據類型轉換詳解

2024-08-31 01:05:17
字體:
來源:轉載
供稿:網友

常用的轉換函數是 cast 和 convert,用于把表達式得出的值的類型轉換成另一個數據類型,如果轉換失敗,該函數拋出錯誤,導致整個事務回滾。在SQL Server 2012版本中,新增兩個容錯的轉換函數:try_cast 和 try_convert,如果轉換操作失敗,該函數返回null,不會導致整個事務失敗,事務繼續執行下去。

注意:對于SQL Server顯式定義的不合法轉換,try_cast 和 try_convert 會失敗,拋出錯誤信息:Explicit conversion from data type int to date is not allowed.

select try_cast(1 as date)
轉換函數是parse 和 try_parse,只用于把字符類型轉換為 date/time 和 數字類型,在解析字符時會產生一定的性能消耗。

一,時間類型轉換

在把日期/時間類型轉換成字符串時,常用的轉換函數是Convert和Cast,convert函數能夠在一定程度上顯式控制日期/時間的顯示格式,而cast對日期/時間類型的顯示格式,無法顯式控制,我推薦使用另一個功能更強大的函數:FORMAT,該函數用于把日期時間類型,按照指定的格式轉換成字符串,也可以把數值按照特定的格式輸出。

1,常用的轉換函數

convert 常用于轉換date,datetime 等日期/時間類型,通過指定style參數,能夠控制數據顯示的格式

CAST ( expression AS data_type [ ( length ) ] )CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
常用的style及其顯示格式如下:

101 mm/dd/yyyy 110 mm-dd-yyyy 111 yyyy/mm/dd 112 yyyymmdd 120 yyyy-mm-dd hh:mm:ss 121 yyyy-mm-dd hh:mm:sssssss

CONVERT函數的style是數字,記憶起來比較困難,只能按照系統定義的格式來顯示,不夠靈活。SQL Server提供更為靈活的轉換函數FORMAT。

2,FORMAT函數,控制日期和時間類型的顯示格式

FORMAT函數主要用于格式化顯示date/time類型和數值類型,參數format用于指定顯示的格式,給予用戶對格式更自由地控制,culture參數是可選的,用于指定顯示的語言,該函數返回值的數據類型是NVARCHAR,如果格式轉換失敗,該函數返回NULL:

FORMAT ( value, format [, culture ] ) 
當轉換date/time時,在format參數中指定日期/時間顯示的格式,通常情況下,日期/時間的格式使用以下關鍵字符作為占位符:yyyy、MM、dd用來表示:年、月、日,而hh、mm、ss用來表示:時、分、秒,并使用“/”,“-”等作為連接符,例如:
DECLARE @d DATETIME = GETDATE(); SELECT FORMAT( @d, 'dd/MM/yyyy', 'en-US' ) AS 'DateTime Result' 
當轉換數值類型時,在參數format中使用#代表一個數字,使用相應的連接符,拼接成數字的格式字符,例如:
FORMAT(123456789,'###-##-####') AS 'Custom Number Result
SQLServer,數據類型,T-SQL,TSQL,數據類型轉換

二,容錯的轉換函數

TRY_CAST 和TRY_CONVERT是容錯的轉換函數,該函數嘗試把表達式的值轉換為指定的類型,如果轉換成功,返回指定類型的值;如果嘗試轉換失敗,返回NULL;如果請求把一個類型轉換為另一個被顯式禁止的數據類型,那么嘗試轉換失敗,拋出錯誤消息,也就是說,嘗試轉換能夠具有一定的容錯,但是,不能做“違法”的轉換操作。

TRY_CAST ( expression AS data_type [ ( length ) ] )TRY_CONVERT ( data_type [ ( length ) ], expression [, style ] )
1,try_cast 返回null
SELECT CASE WHEN TRY_CAST('test' AS float) IS NULL     THEN 'Cast failed'   ELSE 'Cast succeeded'  END AS Result;
2,try_cast 轉換失敗,返回error
SELECT TRY_CAST(4 AS xml) AS Result;
錯誤消息是:Explicit conversion from data type int to xml is not allowed.

3,try_cast轉換成功

SET DATEFORMAT mdy;SELECT TRY_CAST('12/31/2010' AS datetime2) AS Result;
SQLServer,數據類型,T-SQL,TSQL,數據類型轉換

4,try_convert常用于把date/time類型轉換為指定格式的字符串

系統預定義Style,通過style參數指定最終顯示date/time的格式

SELECT TRY_CONVERT(varchar(8),getdate(),112 ) AS Result;

SQLServer,數據類型,T-SQL,TSQL,數據類型轉換

三,轉換的性能

轉換函數的性能是不同的,經過測試,cast 和 convert 的轉換性能最好,要比try_cast和try_convert要好一些;而Cast的轉換性能比convert要好一點。

參考文檔:

Performance Comparison of the SQL Server PARSE, CAST, CONVERT and TRY_PARSE, TRY_CAST, TRY_CONVERT Functions

CAST and CONVERT (Transact-SQL)


注:相關教程知識閱讀請移步到MSSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧洲亚洲女同hd| 亚洲第一av在线| 亚洲精品aⅴ中文字幕乱码| 亚洲色图17p| 91亚洲精品视频| 欧美色图在线视频| 国产噜噜噜噜久久久久久久久| 欧美俄罗斯乱妇| 久久久久久成人精品| 中文字幕日韩在线播放| 欧美成人国产va精品日本一级| 欧美高清视频一区二区| 日韩美女激情视频| 日韩精品视频免费在线观看| 精品成人在线视频| 欧美大片欧美激情性色a∨久久| 国产精品国产三级国产专播精品人| 欧美一区三区三区高中清蜜桃| 亚洲日本中文字幕免费在线不卡| 亚洲欧美日韩一区二区三区在线| 欧美特级www| 久热精品视频在线观看| 欧美激情精品久久久久久| 国产成人综合精品在线| 中文字幕亚洲字幕| 91国在线精品国内播放| 毛片精品免费在线观看| 色先锋久久影院av| 欧美成人午夜剧场免费观看| 性亚洲最疯狂xxxx高清| 欧美午夜宅男影院在线观看| 91精品久久久久久久久| 欧美成人激情图片网| 国产精品久久网| 精品欧美激情精品一区| 欧美日韩亚洲一区二区三区| 亚洲欧美制服中文字幕| 91中文字幕一区| 91免费版网站入口| 成人免费淫片视频软件| 另类色图亚洲色图| 欧美午夜电影在线| 美日韩丰满少妇在线观看| 亚洲天堂av在线免费| 亚洲精选在线观看| 精品久久久久久久久久久久久| 欧美壮男野外gaytube| 日韩专区在线播放| 日韩最新在线视频| 国产在线精品播放| 精品国产乱码久久久久久虫虫漫画| 亚洲精品国偷自产在线99热| 日韩av123| 视频在线观看99| www.欧美三级电影.com| 91国偷自产一区二区三区的观看方式| 久久久国产在线视频| 亚洲成人a级网| 日韩电影在线观看中文字幕| 91久久久久久久一区二区| 懂色av中文一区二区三区天美| 欧美午夜xxx| 成人性教育视频在线观看| 97色在线播放视频| 成人网址在线观看| 欧美日韩国产限制| 国产一区二区三区视频在线观看| 高潮白浆女日韩av免费看| 亚洲精品中文字幕女同| 日韩亚洲欧美中文高清在线| 欧美性猛交xxxx| 久久久精品中文字幕| 欧美亚洲国产日本| 欧美一级电影久久| 日韩理论片久久| 成人激情视频网| 欧美综合国产精品久久丁香| 久久久久成人精品| 亚洲第一二三四五区| 亚洲老头同性xxxxx| 国产精品福利网站| 国产98色在线| 欧美成人四级hd版| 色老头一区二区三区在线观看| 日韩av在线一区二区| 亚洲精品乱码久久久久久金桔影视| www日韩中文字幕在线看| 国产精品视频1区| 日韩不卡中文字幕| 日韩电影中文字幕一区| 国产精品久久久久久久久久久新郎| 欧美大尺度激情区在线播放| 日韩中文字幕国产精品| 欧美自拍视频在线| 91精品久久久久久久久久久久久| 亚洲人成电影在线观看天堂色| 91在线播放国产| 国产女人18毛片水18精品| 亚洲成人av在线播放| 欧美丰满老妇厨房牲生活| 国产精品自拍小视频| 国产国产精品人在线视| 久久在线精品视频| 日韩精品中文字幕在线播放| 欧美整片在线观看| 成人精品久久久| 91久久久久久久| 欧美日韩日本国产| 在线免费观看羞羞视频一区二区| 久久精品2019中文字幕| 亚洲跨种族黑人xxx| 成人黄色免费看| 97婷婷涩涩精品一区| 亚洲男人的天堂在线| 亚洲va久久久噜噜噜| 国产69久久精品成人看| 国产成人在线视频| 欧美午夜激情视频| 日本一区二区三区在线播放| 91精品国产高清久久久久久91| 亚洲石原莉奈一区二区在线观看| 欧美一区二区视频97| 国产日韩欧美中文在线播放| 国产成人精品久久亚洲高清不卡| 国产精品高潮呻吟视频| 国产成人精品在线视频| 亚洲在线一区二区| 日本精品性网站在线观看| 91精品国产91久久久久久最新| 日韩美女在线看| 亚洲欧美日韩在线一区| 国产91精品网站| www.亚洲人.com| 92裸体在线视频网站| 欧美日韩免费一区| 欧美日韩免费观看中文| 国产亚洲在线播放| 欧美成人中文字幕在线| 国产日韩专区在线| 亚洲国产古装精品网站| 国产精品久久久久91| 日韩专区在线播放| 国产精品美乳一区二区免费| 成人啪啪免费看| 国产日韩精品视频| 国产成人黄色av| 97热在线精品视频在线观看| 中文字幕欧美日韩精品| 中国日韩欧美久久久久久久久| 日韩电影免费在线观看中文字幕| 久久av在线看| 国产精品第一页在线| 亚洲免费精彩视频| 97国产真实伦对白精彩视频8| 91po在线观看91精品国产性色| 国产精品人人做人人爽| 2018国产精品视频| 最新亚洲国产精品| 91精品久久久久久| 亚洲综合精品伊人久久| 欧美日韩中文字幕在线| 精品国产拍在线观看| 精品亚洲一区二区三区| 中文字幕日本欧美|