CAST('123' as int)
創(chuàng)新互聯(lián)是一家專業(yè)提供運(yùn)河企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、H5頁面制作、小程序制作等業(yè)務(wù)。10年已為運(yùn)河眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
“123”可以是表中字段名,也可以是SQL語句,或是一個(gè)值
int是類型,可以為sql中的任何類型
先檢查金額列的數(shù)據(jù)是否都符合小數(shù)規(guī)范
用
cast(金額
as
decimal(10,4))500
或者
convert(decimal(10,4),金額)500
試試
decimal的長度和小數(shù)位數(shù)根據(jù)自己需要設(shè)定
有兩種。
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è)字符串。
對(duì)于數(shù)據(jù)類型的確切值,轉(zhuǎn)換后的字符串是我們存儲(chǔ)的值。如:
聲明@iintset@i=123456789print'test:'+轉(zhuǎn)換(varchar(20),@i)
輸出是:test:123456789
對(duì)于具有近似值的數(shù)據(jù)類型,情況就不那么簡單了。
聲明@ifloatset@i=123456789print'test:'+轉(zhuǎn)換(varchar(20),@i):test:1.23457e+008
有兩種。
1、convert(int,字段名)
例如:select convert(int,'3')
2、cast(字段名 as int) 例如:select cast('3' as int)
一般情況下沒有必要把字符串轉(zhuǎn)換為數(shù)字類型,假如需要比較兩個(gè)字段是否相等,但是一個(gè)字段為字符串類型,一個(gè)為數(shù)字類型,用“=”比較兩個(gè)值是否相等時(shí),SQL SERVER會(huì)自動(dòng)把字符串轉(zhuǎn)換為數(shù)字再比較的。
擴(kuò)展資料:
注意事項(xiàng)
這兩個(gè)函數(shù)的作用都是進(jìn)行類型轉(zhuǎn)換,只不過語法格式不同。據(jù)說在轉(zhuǎn)換時(shí)還是有一定的區(qū)別的,不過我個(gè)人更習(xí)慣于使用convert函數(shù),應(yīng)該這個(gè)函數(shù)一方面更像是個(gè)函數(shù)的語法,另一方面在做時(shí)間和數(shù)值轉(zhuǎn)換成字符串時(shí)還可以指定轉(zhuǎn)換的格式。
對(duì)于精確數(shù)值的數(shù)據(jù)類型,轉(zhuǎn)換出來的字符串就是我們存儲(chǔ)的數(shù)值。比如:
declare @i intset @i=123456789print 'test:'+convert(varchar(20),@i)
輸出就是:test:123456789
而如果對(duì)于近似數(shù)值的數(shù)據(jù)類型,那么可就沒有那么簡單了。
declare @i floatset @i=123456789print 'test:'+convert(varchar(20),@i)
輸出結(jié)果:test:1.23457e+008
1、在表中加一個(gè)字段,設(shè)為數(shù)字型。
2、updata這個(gè)字段,用你原來的字段轉(zhuǎn)出來的數(shù)值來填。
3、語句例:
updata 表 set 新字段 = convert(int,原字段)
4、將老字段的字段名改去或刪除老字段,將新字段的字段名改成老字段。
5、注意,這種改變很可能造成使用這個(gè)數(shù)據(jù)表的應(yīng)用程序出錯(cuò),所以,除非這個(gè)數(shù)據(jù)庫是你自個(gè)設(shè)計(jì)的,或你確信這樣做不會(huì)有問題,否則別干這種事。
6、做這些操作前請(qǐng)備份你的數(shù)據(jù)庫。
可以使用函數(shù):ISNUMERIC
當(dāng)輸入表達(dá)式得數(shù)為一個(gè)有效的整數(shù)、浮點(diǎn)數(shù)、money 或 decimal 類型,那么 ISNUMERIC 返回 1;否則返回 0。返回值為 1 確??梢詫?expression 轉(zhuǎn)換為上述數(shù)字類型中的一種。
將字符的數(shù)字轉(zhuǎn)成數(shù)字,比如'0'轉(zhuǎn)成0可以直接用加法來實(shí)現(xiàn);
若絕對(duì)比較可以這樣:
select binary 11 =binary "11ddddd";
字符集轉(zhuǎn)換:CONVERT(xxx? USING? ?gb2312);
類型轉(zhuǎn)換和SQL Server一樣,就是類型參數(shù)有點(diǎn)點(diǎn)不同? : CAST(xxx AS 類型),CONVERT(xxx,類型);
類型必須用下列的類型:BINARY、CHAR()、DATE、TIME、DATETIME、DECIMAL、SIGNED、UNSIGNED。
數(shù)據(jù)類型:
字符串?dāng)?shù)據(jù)類型是建模在形式字符串的想法上的數(shù)據(jù)類型。字符串是幾乎在所有編程語言中可以實(shí)現(xiàn)的非常重要和有用的數(shù)據(jù)類型。在某些語言中它們可作為基本類型獲得,在另一些語言中做為復(fù)合類型獲得。多數(shù)高級(jí)語言的語法允許通常用某種方式引用起來的字符串來表示字符串?dāng)?shù)據(jù)類型的實(shí)例;這種元字符串叫做“文本”或“字符串文本”。
以上內(nèi)容參考:百度百科-字符串