新聞中心
sql server中的怎么把數(shù)值型轉(zhuǎn)換為字符串
有兩種。
從策劃到設(shè)計制作,每一步都追求做到細膩,制作可持續(xù)發(fā)展的企業(yè)網(wǎng)站。為客戶提供成都網(wǎng)站設(shè)計、網(wǎng)站制作、網(wǎng)站策劃、網(wǎng)頁設(shè)計、申請域名、虛擬空間、網(wǎng)絡(luò)營銷、VI設(shè)計、 網(wǎng)站改版、漏洞修補等服務(wù)。為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,以客戶的口碑塑造優(yōu)易品牌,攜手廣大客戶,共同發(fā)展進步。
1.轉(zhuǎn)換(int,字段名)
例如:選擇convert(int,'3')
選擇cast('3'作為int)
一般來說,沒有必要將字符串轉(zhuǎn)換為數(shù)字類型,如果你需要比較兩個字段是相等的,但為字符串類型字段,類型,用“=”來比較這兩個值是相等的,SQLSERVER將自動將字符串轉(zhuǎn)換為一個數(shù)字,然后比較。
擴展資料:
注意事項:
這兩個函數(shù)都執(zhí)行強制轉(zhuǎn)換,但是語法不同。據(jù)說有一些不同的轉(zhuǎn)換,但我更習慣于使用轉(zhuǎn)換函數(shù),它更像一個函數(shù)的語法一方面,可以指定的格式轉(zhuǎn)換,將時間和價值轉(zhuǎn)換為一個字符串。
對于數(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
sqlserver關(guān)于數(shù)據(jù)類型轉(zhuǎn)換的問題
價格用Money類型啊,干嗎要那么麻煩
就算你不用Money,你也可以直接定義為int 或者Double
sql中數(shù)據(jù)類型轉(zhuǎn)換
CAST 和 CONVERT
將某種數(shù)據(jù)類型的表達式顯式轉(zhuǎn)換為另一種數(shù)據(jù)類型。CAST 和 CONVERT 提供相似的功能。
語法
使用 CAST:
CAST ( expression AS data_type )
使用 CONVERT:
CONVERT (data_type[(length)], expression [, style])
例子:
CONVERT(char(20), ytd_sales)
CAST(ytd_sales AS char(20))
SQLSERVER 數(shù)據(jù)類型轉(zhuǎn)換報錯 Error converting data type nvarchar to numeric.
[amount] 列有空值,Convert 不能對于空值進行數(shù)據(jù)類型的轉(zhuǎn)換
TRY_CONVERT VS CONVERT
TRY_CONVERT 將一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型,如果此函數(shù)無法執(zhí)行轉(zhuǎn)換,則返回 null;
CONVERT:將一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型
5、參考連接
SqlServer?中存儲過程:money類型與char類型的轉(zhuǎn)換問題
自己寫的么?
1有些地方?jīng)]必要4個單引號,3個就行,在sql中字符串的拼接語句中要表示1個單引號就得用兩個單引號,前一個表示轉(zhuǎn)義的意思,編程語言都有轉(zhuǎn)義一說
2因為是字符串拼接的,而@FormerPrice這些是money類型的,如果不轉(zhuǎn)換,就默認要把字符串轉(zhuǎn)換成money類型了,就會出錯。所以得把@FormerPrice之類的轉(zhuǎn)換成字符類型的,存儲過程修改如下
ALTER
PROCEDURE
[dbo].[SearchMerchandise]
@Category
varchar(50),
@Brand
varchar(50),
@Type
varchar(50),
@FormerPrice
money,
@LatterPrice
money
AS
BEGIN
declare
@QueryString
varchar(100)
set
@QueryString
=
'select
*
from
Merchandise
where
Category
=
'''
+
@Category
+
'''
and
Brand
=
'''
+
@Brand
+
'''
'
SET
NOCOUNT
ON;
if
@Type''
set
@QueryString
=
@QueryString+'
and
Type='''
+@Type+
''''
if
@FormerPrice''
and
@LatterPrice''
set
@QueryString
=
@QueryString+'
and
PriceNow
between
'''+
convert(varchar(20),@FormerPrice)
+
'''
and
'''
+
convert(varchar(20),@LatterPrice)
+
''''
if
@FormerPrice''
and
@LatterPrice=''
set
@QueryString
=
@QueryString+'
and
PriceNow
='''
+
convert(varchar(20),@FormerPrice)
+
''''
if
@FormerPrice=''
and
@LatterPrice''
set
@QueryString
=
@QueryString+'
and
PriceNow
='''
+
convert(varchar(20),@LatterPrice)
+
''''
exec(@QueryString)
END
因為沒有表結(jié)果不能進行測試,所以可能會出錯,如果出錯就把表結(jié)果發(fā)一下,進行測試
日期'>sqlserver類型轉(zhuǎn)換:字符串->日期
不知道你的字符串類型的日期是什么樣子的,下面有一個例子:
Test_OldTable是包含19990101等nvarchar數(shù)據(jù)類型的表,
Test_NewTable是包含DateTime數(shù)據(jù)類型的表
sql語句:
INSERT INTO Test_NewTable(NewDate)
SELECT CAST(OldDate AS DateTime)
FROM Test_OldTable
其他的方法還有很多,給你個鏈接,看看吧,網(wǎng)上多找找
分享題目:sqlserver類型轉(zhuǎn),sql轉(zhuǎn)數(shù)據(jù)類型
文章來源:http://www.dlmjj.cn/article/hdescj.html