在從excel往sql server導入數據,電話、編號等數字呈現float類型,然后向b表中insert后(phone為nvarchar)出現科學計數法,解決方法:需將float等數據類型轉為標准的decimal類型后轉nvarchar即可。一直覺得float和double類型在sql server和其他語言等日常編程中沒有用途,而且容易造成麻煩(計算時出現近似值)等,建議使用decimal(18,2)。
convert(nvarchar(50),convert(decimal,phone))
declare @i float set @i=123456789
print 'test:'+convert(varchar(20),convert(int,@i))
輸出:test:123456789
如果是有小數,那么我們要轉換出小數位的話,可以轉換成decimal,轉換出的小數位數在定義decimal時指定。比如要輸出4位小數,那么轉換代碼是:
declare @i float set @i=123456789.12
print 'test:'+convert(varchar(20),convert(decimal(18,4),@i))
輸出:test:123456789.1200
