久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

關于SQL Server中將數(shù)值類型轉換為字符串的問題(轉)

 icecity1306 2015-04-16

  今天將Excel中的數(shù)據(jù)導入到數(shù)據(jù)庫表A后,,某一列被自動定義成了Float數(shù)據(jù)類型,,然而,我們的正式庫中的表B的相對應的列是Varchar類型的,,所以,,就出現(xiàn)了表B中所對應的列數(shù)據(jù)變成了科學計數(shù)法的形式。

  原文地址:http://www.cnblogs.com/studyzy/archive/2009/08/27/1555356.html

  今天在把一些數(shù)據(jù)導入到SQL Server的時候遇到有個列被導入成float類型,,而我實際需要的是varchar類型,,所以要進行類型轉換,,轉換時遇到了一點問題,所以寫這篇博客記錄一下,。

SQL Server中的數(shù)值類型分為兩種,,一種是精確的數(shù)值類型,具體的數(shù)據(jù)類型有:bit,、tinyint,、smallint、int,、bigint,、smallmoney、money和decimal,,這些數(shù)據(jù)類型能夠精確的表明某以數(shù)值,;另一種是近似的數(shù)值類型,具體就是float和real,。浮點數(shù)據(jù)為近似值,,因此,并非數(shù)據(jù)類型范圍內(nèi)的所有值都能精確地表示,。

  有些時候我們需要將這些數(shù)值類型轉換為字符串類型,,用到的轉換函數(shù)就是cast和convert,這兩個函數(shù)的作用都是進行類型轉換,,只不過語法格式不同,。據(jù)說在轉換時還是有一定的區(qū)別的,不過我個人更習慣于使用convert函數(shù),,應該這個函數(shù)一方面更像是個函數(shù)的語法,,另一方面在做時間和數(shù)值轉換成字符串時還可以指定轉換的格式。

  對于精確數(shù)值的數(shù)據(jù)類型,,轉換出來的字符串就是我們存儲的數(shù)值,。比如:

declare @i int
set @i=123456789
print 'test:'+convert(varchar(20),@i)
輸出就是:test:123456789

而如果對于近似數(shù)值的數(shù)據(jù)類型,那么可就沒有那么簡單了,。

declare @i float
set @i=123456789
print 'test:'+convert(varchar(20),@i)
輸出結果:test:1.23457e+008

輸出的結果是使用科學計數(shù)法來表示的,再看看可否通過指定轉換樣式來指定不使用科學計數(shù)法呢?幫助文檔中說到float 或 real 轉換為字符數(shù)據(jù)時的 style 值:

0(默認值)最大為 6 位數(shù),。根據(jù)需要使用科學記數(shù)法。

始終為 8 位值,。始終使用科學記數(shù)法,。

始終為 16 位值。始終使用科學記數(shù)法,。

  我們的值是123456789,超過了6位數(shù).所以不管是0還是1,2結果都會使用科學計數(shù)法來表示,。那么要怎么樣才能將我們的數(shù)據(jù)不轉換成科學計數(shù)法而輸出呢?比較簡單的辦法就是將近似數(shù)據(jù)轉換為精確數(shù)據(jù),然后再將精確數(shù)據(jù)轉換成字符串,。

同樣以上面的例子為例,, 進行兩次數(shù)據(jù)類型的轉換如下:

declare @i float
set @i=123456789
print 'test:'+convert(varchar(20),convert(int,@i))
輸出:test:123456789
如果是有小數(shù),那么我們要轉換出小數(shù)位的話,,可以轉換成decimal,,轉換出的小數(shù)位數(shù)在定義decimal時指定。比如要輸出4位小數(shù),,那么轉換代碼是:
declare @i float
set @i=123456789.12
print 'test:'+convert(varchar(20),convert(decimal(18,4),@i))
輸出:test:123456789.1200

 由于我們知道數(shù)據(jù)類型間轉換的兩種方式有:Cast,、Convert,那么他們兩者之間的區(qū)別是什么呢,?

可參考:http://technet.microsoft.com/zh-cn/library/ms187928(v=sql.105).aspx

    本站是提供個人知識管理的網(wǎng)絡存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內(nèi)容,,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多