日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Excel 手機(jī)號(hào)碼、身份證 等信息 導(dǎo)入到SQL2005

系統(tǒng) 2321 0

今天導(dǎo)入客戶用戶信息時(shí),發(fā)現(xiàn)Excel中的手機(jī)號(hào)碼導(dǎo)入到SQL時(shí)是float,就用Convert直接轉(zhuǎn)成Varchar更新到數(shù)據(jù)庫(kù)中了,查看后發(fā)現(xiàn)是 使用的科學(xué)計(jì)數(shù)法的1.37..+e10,就把 Excel表中相關(guān)的單元格的格式設(shè)置成了 文本,心想總可以了吧,導(dǎo)入后發(fā)現(xiàn)還是 科學(xué)計(jì)數(shù)法。郁悶

?

摸索后發(fā)現(xiàn)通過(guò)如下的設(shè)置可以解決這個(gè)問(wèn)題

1、將 字段的數(shù)據(jù)類型設(shè)置為 double(numberic應(yīng)該也可以),保存表設(shè)計(jì),數(shù)據(jù)自動(dòng)加上 ".00",

2、再將字段屬性設(shè)置為 Varchar,還是帶有 ".00"的Varchar數(shù)據(jù)

3、寫(xiě)一個(gè)Update語(yǔ)句,用Replace去掉數(shù)據(jù)中的 ".00"

OK,搞定

?

從網(wǎng)上還查到一個(gè)方法,因?yàn)闀r(shí)間緊張,沒(méi)有去驗(yàn)證,在此摘抄一下,希望對(duì)大家有幫助:

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

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

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

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

對(duì)于精確數(shù)值的數(shù)據(jù)類型,轉(zhuǎn)換出來(lái)的字符串就是我們存儲(chǔ)的數(shù)值。比如:

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

而如果對(duì)于近似數(shù)值的數(shù)據(jù)類型,那么可就沒(méi)有那么簡(jiǎn)單了。

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

輸出的結(jié)果是使用科學(xué)計(jì)數(shù)法來(lái)表示的,再看看可否通過(guò)指定轉(zhuǎn)換樣式來(lái)指定不使用科學(xué)計(jì)數(shù)法呢?幫助文檔中說(shuō)到 float real 轉(zhuǎn)換為字符數(shù)據(jù)時(shí)的 style 值:

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

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

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

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

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

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

?

?

Excel 手機(jī)號(hào)碼、身份證 等信息 導(dǎo)入到SQL2005 中,轉(zhuǎn)換成字符是自動(dòng)變成 科學(xué)計(jì)數(shù)法 的解決方法


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 普安县| 怀化市| 边坝县| 隆德县| 闽侯县| 嘉荫县| 思南县| 潮安县| 科技| 双流县| 渭南市| 商河县| 曲沃县| 合作市| 闵行区| 门头沟区| 呼图壁县| 南平市| 湘潭县| 安国市| 道孚县| 永吉县| 汤阴县| 什邡市| 武平县| 阜南县| 沂源县| 广灵县| 满洲里市| 温宿县| 仁化县| 左云县| 新蔡县| 桂东县| 兰西县| 武隆县| 磐石市| 雷山县| 县级市| 浦江县| 海安县|