【Sqlserver系列】CAST和CONVERT

來源:互聯網
上載者:User

標籤:var   sqlserver   引用   格式   alt   man   閱讀   郵箱   數值   

1   概述

 本篇文章主要講解SqlServer中類型轉換涉及的兩個函數:CAST和CONVERT。

2   具體內容

2.1  CAST

(1)作用:將一種資料類型的運算式轉換為另一種資料類型的運算式。

(2)定義:

1 CAST ( expression AS data_type)

Parameters:

     expression:任何可轉換為 data_type 的有效運算式;

     data_type:系統提供的目標資料類型。 該類型必須為基元(標量)類型。 使用的 data_type 取決於查詢空間。 如果使用EntityCommand 執行查詢,則資料類型為概念性模型中定義的類型。  

Return Value::

    返回與 data_type 相同的值。

(3)例子

 1 SELECT CAST(‘2017‘ AS INT)  --2017 2  3 SELECT CAST(2017 AS INT)   --2017 4  5 SELECT CAST(2017.3 AS INT)   --2017 6  7 SELECT CAST(‘2017.3‘ AS INT)--訊息 245,層級 16,狀態 1,第 1 行,在將 varchar 值 ‘2017.3‘ 轉換成資料類型 int 時失敗。 8  9 SELECT CAST(‘2017.3‘ AS decimal) --201710 11 SELECT CAST(‘2017.3‘ AS decimal(8,2))  --2017.30

 

2.2  CONVERT

(1)作用:將一種資料類型的運算式轉換為另一種資料類型的運算式。

(2)定義:

1 CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

Parameters:

   expression:任何有效運算式;

   data_type:目標資料類型。這包括 xml、bigint 和 sql_variant。不能使用別名資料類型;

   length:指定目標資料類型長度的可選整數。預設值為 30;

   style:指定 CONVERT 函數如何轉換 expression 的整數運算式。如果樣式為 NULL,則返回 NULL。該範圍是由 data_type 確定的。有關詳細資料,請參閱“備忘”部分;

Return Value:

   返迴轉換為 data_type 的 expression。

(3)例子

1 SELECT CONVERT(INT,‘2017‘)   --20172  3 SELECT CONVERT(INT,2017.3)   --20174 5 SELECT CONVERT(INT,‘2017.3‘)   --訊息 245,層級 16,狀態 1,第 1 行,在將 varchar 值 ‘2017.3‘ 轉換成資料類型 int 時失敗。6 7 SELECT CONVERT(decimal,‘2017.3‘)  --20178 9 SELECT CONVERT(decimal(8,2),‘2017.3‘) --2017.30

 

2.3  CAST和CONVERT比較

(1)cast一般更容易使用,convert的優點是可以格式化日期和數值;

(2)convert一般用於日期和時間值,小數之間轉換,cast一般用於小數轉數值和字元型;

(3)converk顯示轉換,cast是強制轉換;            
(4)例子

 1 select CONVERT(varchar, getdate(), 120 )  --2017-08-13 03:56:14 2   3 select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),‘-‘,‘‘),‘ ‘,‘‘),‘:‘,‘‘) --20170813035627 4   5 select CONVERT(varchar(12) , getdate(), 111 ) --2017/08/13 6   7 select CONVERT(varchar(12) , getdate(), 112 )  --20170813 8   9 select CONVERT(varchar(12) , getdate(), 102 )  --2017.08.1310  11 select CONVERT(varchar(12) , getdate(), 101 )  --08/13/201712  13 select CONVERT(varchar(12) , getdate(), 103 )  --13/08/201714  15 select CONVERT(varchar(12) , getdate(), 104 )  --13.08.201716  17 select CONVERT(varchar(12) , getdate(), 105 )  --13-08-201718  19 select CONVERT(varchar(12) , getdate(), 106 )  --13 08 201720  21 select CONVERT(varchar(12) , getdate(), 107 )  --08 13, 201722  23 select CONVERT(varchar(12) , getdate(), 108 )  --03:57:3924   25 select CONVERT(varchar(12) , getdate(), 109 )  --08 13 2017  26  27 select CONVERT(varchar(12) , getdate(), 110 )  --08-13-201728  29 select CONVERT(varchar(12) , getdate(), 113 )  --13 08 2017 030  31 select CONVERT(varchar(12) , getdate(), 114 )  --03:58:08:20032  33 select getdate()  --2017-08-13 03:58:48.66034  35 select convert(char(8),getdate(),112)  --2017081336  37 select convert(char(8),getdate(),108)  --03:58:4838  39 select convert(char(8),getdate(),112)  --20170813

參考表:

3   參考文獻

【01】https://msdn.microsoft.com/zh-cn/library/bb399172(v=vs.110).aspx

【02】https://technet.microsoft.com/zh-cn/library/ms187928(v=sql.105).aspx

4   著作權

 

  • 感謝您的閱讀,若有不足之處,歡迎指教,共同學習、共同進步。
  • 博主網址:http://www.cnblogs.com/wangjiming/。
  • 極少部分文章利用讀書、參考、引用、抄襲、複製和粘貼等多種方式整合而成的,大部分為原創。
  • 如您喜歡,麻煩推薦一下;如您有新想法,歡迎提出,郵箱:[email protected]。
  • 可以轉載該部落格,但必須著名部落格來源。

【Sqlserver系列】CAST和CONVERT

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.