有兩種。
公司主營業(yè)務(wù):成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出龍里免費(fèi)做網(wǎng)站回饋大家。
1.轉(zhuǎn)換(int,字段名)
例如:選擇convert(int,'3')
選擇cast('3'作為int)
一般來說,沒有必要將字符串轉(zhuǎn)換為數(shù)字類型,如果你需要比較兩個(gè)字段是相等的,但為字符串類型字段,類型,用“=”來比較這兩個(gè)值是相等的,SQLSERVER將自動(dòng)將字符串轉(zhuǎn)換為一個(gè)數(shù)字,然后比較。
擴(kuò)展資料:
注意事項(xiàng):
這兩個(gè)函數(shù)都執(zhí)行強(qiáng)制轉(zhuǎn)換,但是語法不同。據(jù)說有一些不同的轉(zhuǎn)換,但我更習(xí)慣于使用轉(zhuǎn)換函數(shù),它更像一個(gè)函數(shù)的語法一方面,可以指定的格式轉(zhuǎn)換,將時(shí)間和價(jià)值轉(zhuǎn)換為一個(gè)字符串。
對于數(shù)據(jù)類型的確切值,轉(zhuǎn)換后的字符串是我們存儲的值。如:
聲明@iintset@i=123456789print'test:'+轉(zhuǎn)換(varchar(20),@i)
輸出是:test:123456789
對于具有近似值的數(shù)據(jù)類型,情況就不那么簡單了。
聲明@ifloatset@i=123456789print'test:'+轉(zhuǎn)換(varchar(20),@i):test:1.23457e+008
不一定非要在存儲過程中轉(zhuǎn)換,用普通的sql語句就可以,一般用cast函數(shù)。
測試方法:
創(chuàng)建表及插入數(shù)據(jù):
create?table?test
(id?int,
starttime?varchar(20));
insert?into?test?values?(1,'2015-07-11');
將starttime字段轉(zhuǎn)化為datetime類型:
select?cast(starttime?as?datetime)?from?test;
結(jié)果如圖,這時(shí),starttime就轉(zhuǎn)成了datetime類型:
SQL SERVER中強(qiáng)制類型轉(zhuǎn)換cast和convert的區(qū)別詳解
在SQL SERVER中,cast和convert函數(shù)都可用于類型轉(zhuǎn)換,其功能是相同的,
只是語法不同.
cast一般更容易使用,convert的優(yōu)點(diǎn)是可以格式化日期和數(shù)值.
代碼
select CAST('123' as int) -- 123
select CONVERT(int, '123') -- 123
select CAST(123.4 as int) -- 123
select CONVERT(int, 123.4) -- 123
select CAST('123.4' as int)
select CONVERT(int, '123.4')
-- Conversion failed when converting the varchar value '123.4' to data type int.
select CAST('123.4' as decimal) -- 123
select CONVERT(decimal, '123.4') -- 123
select CAST('123.4' as decimal(9,2)) -- 123.40
select CONVERT(decimal(9,2), '123.4') -- 123.40
declare @Num money
set @Num = 1234.56
select CONVERT(varchar(20), @Num, 0) -- 1234.56
select CONVERT(varchar(20), @Num, 1) -- 1,234.56
select CONVERT(varchar(20), @Num, 2) -- 1234.5600
將某種數(shù)據(jù)類型的表達(dá)式顯式轉(zhuǎn)換為另一種數(shù)據(jù)類型。CAST 和 CONVERT 提供相似的功能。 語法
使用 CAST: CAST ( expression AS data_type ) 使用 CONVERT: CONVERT (data_type[(length)], expression [, style]) 參數(shù)
expression 是任何有效的 Microsoft SQL Server" 表達(dá)式。有關(guān)更多信息,請參見表達(dá)式。 data_type 目標(biāo)系統(tǒng)所提供的數(shù)據(jù)類型,包括 bigint 和 sql_variant。不能使用用戶定義的數(shù)據(jù)類型。有關(guān)可用的數(shù)據(jù)類型的更多信息,請參見數(shù)據(jù)類型。 length nchar、nvarchar、char、varchar、binary 或 varbinary 數(shù)據(jù)類型的可選參數(shù)。 style 日期格式樣式,借以將 datetime 或 smalldatetime 數(shù)據(jù)轉(zhuǎn)換為字符數(shù)據(jù)(nchar、nvarchar、char、varchar、nchar 或 nvarchar 數(shù)據(jù)類型);或者字符串格式樣式,借以將 float、real、money 或 smallmoney 數(shù)據(jù)轉(zhuǎn)換為字符數(shù)據(jù)(nchar、nvarchar、char、varchar、nchar 或 nvarchar 數(shù)據(jù)類型)。
將某種數(shù)據(jù)類型的表達(dá)式顯式轉(zhuǎn)換為另一種數(shù)據(jù)類型。有關(guān)可用的數(shù)據(jù)類型的更多信息,請參見數(shù)據(jù)類型。日期格式樣式,借以將 datetime 或 smalldatetime 數(shù)據(jù)轉(zhuǎn)換為字符數(shù)據(jù)(nchar、nvarchar、char、varchar、nchar 或 nvarchar 數(shù)據(jù)類型);或者字符串格式樣式,借以將 float、real、money 或 smallmoney 數(shù)據(jù)轉(zhuǎn)換為字符數(shù)據(jù)(nchar、nvarchar、char、varchar、nchar 或 nvarchar 數(shù)據(jù)類型)。當(dāng)轉(zhuǎn)換為字符數(shù)據(jù)時(shí)輸出。
隱性轉(zhuǎn)換對于用戶是不可見的。
SQL Server 自動(dòng)將數(shù)據(jù)從一種數(shù)據(jù)類型轉(zhuǎn)換成另一種數(shù)據(jù)類型。例如,如果一個(gè) smallint 變量和一個(gè) int 變量相比較,這個(gè) smallint 變量在比較前即被隱性轉(zhuǎn)換成 int 變量。 顯式轉(zhuǎn)換使用 CAST 或 CONVERT 函數(shù)。
CAST 和 CONVERT 函數(shù)將數(shù)值從一個(gè)數(shù)據(jù)類型(局部變量、列或其它表達(dá)式)轉(zhuǎn)換到另一個(gè)數(shù)據(jù)類型。例如,下面的 CAST 函數(shù)將數(shù)值 $157.27 轉(zhuǎn)換成字符串 ''$157.27'':CAST ( $157.27 AS VARCHAR(10) )
CAST 函數(shù)基于 SQL-92 標(biāo)準(zhǔn)并且優(yōu)先于 CONVERT。 當(dāng)從一個(gè) SQL Server 對象的數(shù)據(jù)類型向另一個(gè)轉(zhuǎn)換時(shí),一些隱性和顯式數(shù)據(jù)類型轉(zhuǎn)換是不支持的。例如,nchar 數(shù)值根本就不能被轉(zhuǎn)換成 image 數(shù)值。nchar 只能顯式地轉(zhuǎn)換成 binary,隱性地轉(zhuǎn)換到 binary 是不支持的。nchar 可以顯式地或者隱性地轉(zhuǎn)換成 nvarchar。 當(dāng)處理 sql_variant 數(shù)據(jù)類型時(shí),SQL Server 支持將具有其它數(shù)據(jù)類型的對象隱性轉(zhuǎn)換成 sql_variant 類型。然而,SQL Server 并不支持從 sql_variant 數(shù)據(jù)隱性地轉(zhuǎn)換到其它數(shù)據(jù)類型的對象
代碼問題:”100.1%”這種帶有非數(shù)字的字符是不可以轉(zhuǎn)換成numeric的。
改正方法:你可以將數(shù)字除以100,變?yōu)椤?.001”再轉(zhuǎn)換成numeric。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????????? ? ? ? ? set @lastbl1 =“1.001” ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? set @lastbl2 =? CAST( @lastbl1 AS numeric(10,2))
擴(kuò)展資料:
1.SQL Server中可以使用cast和convert函數(shù)進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換。
如:set @lastbl2= CAST( @lastbl1 AS numeric(10,2)) ?
或 ??set @lastbl2= CONVERT(numeric(10,2),@lastbl1 )
2.cast與convert的不同:convert多用于關(guān)于日期時(shí)間的轉(zhuǎn)換;cast一般用于小數(shù)數(shù)值和字符型。
如:select CONVERT(varchar(12) , getdate(),111 ) -- 2017/08/13
參考資料:
百度百科--CAST和CONVERT
文章題目:sqlserver中轉(zhuǎn)換,sqlserver數(shù)據(jù)類型轉(zhuǎn)換
網(wǎng)站URL:http://m.kartarina.com/article14/hddpge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、網(wǎng)站營銷、虛擬主機(jī)、微信公眾號、域名注冊、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)