① sql server 貨幣 欄位 類型 一般用什麼類型
貨幣的欄位類型一般有int,float,money/smallmoney,decimal/numberic。
根據存儲數據的精度不同選擇:
int只能存儲整數的錢。
money/smallmoney數據類型精確到它們所代表的貨幣單位的萬分之一 。
decimal/numberic 可以自定義小數位和能存儲的數據精度, 所以一般使用這種類型的人會多一些。
float 對貨幣這種需要精確值的數值不合適。
總結:
在財務方面最好實用money與decimal類型。
如果是簡單的計算可以使用float類型,不過float類型在有些平台上取出數據並不是那麼准確,有可能會丟失精度。所以說如果在性能穩定的平台中,開銷不是很大,建議使用以上兩種類型。
(1)sqlserver數值型擴展閱讀:
SQL數據類型:
1、bit 整型
bit數據類型是整型,其值只能是0、1或空值。這種數據類型用於存儲只有兩種可能值的數據,如Yes 或No、True 或False 、On 或Off.
注意:很省空間的一種數據類型,如果能夠滿足需求應該盡量多用。
2、tinyint 整型
tinyint 數據類型能存儲從0到255 之間的整數。它在你只打算存儲有限數目的數值時很有用。這種數據類型在資料庫中佔用1 個位元組。
3、smallint 整型
smallint 數據類型可以存儲從- 2的15次冪(-32768)到2的15次冪(32767)之間的整數。這種數據類型對存儲一些常限定在特定范圍內的數值型數據非常有用。這種數據類型在資料庫里佔用2 位元組空間。
4、int 整型
int 數據類型可以存儲從- 2的31次冪(-2147483648)到2的31次冪 (2147483 647)之間的整數。存儲到資料庫的幾乎所有數值型的數據都可以用這種數據類型。這種數據類型在資料庫里佔用4個位元組。
5、decimal 精確數值型
decimal 數據類型能用來存儲從-10的38次冪-1到10的38次冪-1的固定精度和范圍的數值型數據。使用這種數據類型時,必須指定范圍和精度。 范圍是小數點左右所能存儲的數字的總位數。精度是小數點右邊存儲的數字的位數。
6、numeric 精確數值型
numeric數據類型與decimal 相似。
7、smallmoney 貨幣型
smallmoney 數據類型用來表示錢和貨幣值。這種數據類型能存儲從-214748.3648 到214748.3647 之間的數據,精確到貨幣單位的萬分之一。
8、money 貨幣型
money數據類型用來表示錢和貨幣值。這種數據類型能存儲從-9220億到9220 億之間的數據,精確到貨幣單位的萬分之一。
9、float 近似數值型
float 數據類型是一種近似數值類型,供浮點數使用。說浮點數是近似的,是因為在其范圍內不是所有的數都能精確表示。浮點數可以是從-1.79E+308到1.79E+308 之間的任意數。
10、real 近似數值型
real 數據類型像浮點數一樣,是近似數值類型。它可以表示數值在-3.40E+38到3.40E+38之間的浮點數。
② sql server 2008主要數據類型
總體可以歸為3種類型:
字元: char,varchar,nchar,nvarchar
數字: int,decimal,numeric,float,閉鬧穗money
時間: datetime,date,time
用慣oracle的人,一般只用3種類型:
varchar2,可以認為對應sqlserver的彎棚varchar
number,可以認為對應sqlserver的numeric
date,對應sqlserver的datetime
所以,你如果搞不明白那麼多數據類型轎卜,就用這三種類型。
③ sqlserver中如何把字元串轉換成數字
SQL Server中的數值類型分為兩種,一種是精確的數值類型,具體的數據類型有:bit、tinyint、smallint、int、bigint、smallmoney、money和decimal,這些數據類型能夠精確的表明某以數值;另一種是近似的數值類型,具體就是float和real。浮點數據為近似值,因此,並非數據類型範圍內的所有值都能精確地表示。x0dx0a有些時候我們需要將這些數值類型轉換為字元串類型,用到的轉換函數就是cast和convert,這兩個函數的作用都是進行類型轉換,只不過語法格式不同。據說在轉換時還是有一定的區別的,不過我個人更習慣於使用convert函數,應該這個函數一方面更像是個函數的語法,另一方面在做時間和數值轉換成字元串時還可以指定轉換的格式。x0dx0a對於精確數值的數據類型,轉換出來的字元串就是我們存儲的數值。比如:x0dx0adeclare @i intset @i=123456789x0dx0aprint 'test:'+convert(varchar(20),@i)x0dx0a輸出就是:test:123456789x0dx0a而如果對於近似數值的數據類型,那麼可就沒有那麼簡單了。x0dx0adeclare @i floatset @i=123456789x0dx0aprint 'test:'+convert(varchar(20),@i)x0dx0a輸出結果:test:1.23457e+008x0dx0a輸出的結果是使用科學計數法來表示的,再看看可否通過指定轉換樣式來指定不使用科學計數法呢?幫助文檔中說到float 或 real 轉換為字元數據時的 style 值:x0dx0a0(默認值)最大為 6 位數。根據需要使用科學記數法。x0dx0a1 始終為 8 位值。始終使用科學記數法。x0dx0a2 始終為 16 位值。始終使用科學記數法。x0dx0a我們的值是123456789,超過了6位數.所以不管是0還是1,2結果都會使用科學計數法來表示。那麼要怎麼樣才能將我們的數據不轉換成科學計數法而輸出呢?比較簡單的辦法就是將近似數據轉換為精確數據,然後再將精確數據轉換成字元串。x0dx0a同樣以上面的例子為例, 進行兩次數據類型的轉換如下:x0dx0adeclare @i floatset @i=123456789x0dx0aprint 'test:'+convert(varchar(20),convert(int,@i))x0dx0a輸出:test:123456789如果是有小數,那麼我們要轉換出小數位的話,可以轉換成decimal,轉換出的小數位數在定義decimal時指定。比如要輸出4位小數,那麼轉換代碼是:x0dx0adeclare @i floatset @i=123456789.12x0dx0aprint 'test:'+convert(varchar(20),convert(decimal(18,4),@i))x0dx0a輸出:test:123456789.1200
④ sql server中的怎麼把數值型轉換為字元串
有兩種。
1.轉換(int,欄位名)
例如:選擇convert(int,'3')
選擇cast('3'作為int)
一般來說,沒有必要將字元串轉換為數字類型,如果你需要比較兩個欄位是相等的,但為字元串類型欄位,類型,用「=」來比較這兩個值是相等的,SQLSERVER將自動將字元串轉換為一個數字,然後比較。
(4)sqlserver數值型擴展閱讀:
注意事項:
這兩個函數都執行強制轉換,但是語法不同。據說有一些不同的轉換,但我更習慣於使用轉換函數,它更像一個函數的語法一方面,可以指定的格式轉換,將時間和價值轉換為一個字元串。
對於數據類型的確切值,轉換後的字元串是我們存儲的值。如:
聲明@iintset@i=123456789print'test:'+轉換(varchar(20),@i)
輸出是:test:123456789
對於具有近似值的數據類型,情況就不那麼簡單了。
聲明@ifloatset@i=123456789print'test:'+轉換(varchar(20),@i):test:1.23457e+008
⑤ SQL server 常用基本數據類型有哪些
一、
整數數據類型
整數數據類型是最常用的數據類型之一。
1、int
(integer)
2、smallint
3、tinyint
4、bigint
二、
浮點數據類型
浮點數據類型用於存儲十進制小數。浮點數值的數據在sql
server
中採用上舍入(round
up
或稱為只入不舍)方式進行存儲。所謂上舍入是指,當(且僅當)要舍入的數是一個非零數時,對其保留數字部分的最低有效位上的數值加1
,並進行必要的進位。若一個數是上舍入數,其絕對值不會減少。如:對3.14159265358979
分別進行2
位和12位舍入,結果為3.15
和3.141592653590。
1、real
數據類型
2、float
3、decimal
4、numeric
三、二進制數據類型
1、binary
2、varbinary
四、
邏輯數據類型
bit:
bit數據類型佔用1
個位元組的存儲空間,其值為0
或1
。如果輸入0
或1
以外的值,將被視為1。
bit
類型不能定義為null
值(所謂null
值是指空值或無意義的值)。
五、字元數據類型
字元數據類型是使用最多的數據類型。它可以用來存儲各種字母、數字元號、特殊符號。一般情況下,使用字元類型數據時須在其前後加上單引號』或雙引號」
。
1
char
2、nchar
3、varchar
4、nvarchar
六、文本和圖形數據類型
這類數據類型用於存儲大量的字元或二進制數據。
1、text
2
ntext
3
image
七、
日期和時間數據類型
1
datetime
2
smalldatetime
八、貨幣數據類型
1
money
2
smallmoney
smallmoney數據類型類似於money
類型,但其存儲的貨幣值范圍比money數據類型小,其取值從-214,748.3648到+214,748.3647,存儲空間為4
個位元組。
九、
特定數據類型
sql
server
中包含了一些用於數據存儲的特殊數據類型。
1
timestamp
十、用戶自定義數據類型
sysname
sysname
數據類型是系統提供給用戶的,便於用戶自定義數據類型。它被定義為nvarchar(128),即它可存儲128個unicode字元或256個一般字元。其具體使用方法請參見第7章「管理資料庫表」中的「自定義數據類型」章節。
十一、
新數據類型
sql
server
2000
中增加了3
種數據類型:bigint、sql_variant和table。其中bigint數據類型已在整數類型中介紹,下面介紹其餘兩種:
1
sql_variant
sql_variant數據類型可以存儲除文本、圖形數據(text、ntext、image)和timestamp類型數據外的其它任何合法的sql
server數據。此數據類型大大方便了sql
server的開發工作。
2
table
table
數據類型用於存儲對表或視圖處理後的結果集。這一新類型使得變數可以存儲一個表,從而使函數或過程返回查詢結果更加方便快、捷其、使用請參見第13章「游標、視圖和自定義函數」。
⑥ sqlserver的數據類型
sqlserver的數據類型比較多,常用的包括:
第一大類:整數數據
bit:bit數據類型代表0,1或NULL,就是表示true,false.佔用1byte.
int:以4個位元組來存儲正負數.可存儲范圍為:-2^31至2^31-1.
smallint:以2個位元組來存儲正負數.存儲范圍為:-2^15至2^15-1
tinyint: 是最小的整數類型,僅用1位元組,范圍:0至此^8-1
第二大類:精確數值數據
numeric:表示的數字可以達到38位,存儲數據時所用的位元組數目會隨著使用權用位數的多少變化.
decimal:和numeric差不多
第三大類:近似浮點數值數據
float:用8個位元組來存儲數據.最多可為53位.范圍為:-1.79E+308至1.79E+308.
real:位數為24,用4個位元組,數字范圍:-3.04E+38至3.04E+38
第四大類:日期時間數據
datatime:表示時間范圍可以表示從1753/1/1至9999/12/31,時間可以表示到3.33/1000秒.使用8個位元組.
smalldatetime:表示時間范圍可以表示從1900/1/1至2079/12/31.使用4個位元組.
第五大類:字元串數據
char:長度是設定的,最短為1位元組,最長為8000個位元組.不足的長度會用空白補上.
varchar:長度也是設定的,最短為1位元組,最長為8000個位元組,尾部的空白會去掉.
text:長寬也是設定的,最長可以存放2G的數據.
第六大類:Unincode字元串數據
nchar:長度是設定的,最短為1位元組,最長為4000個位元組.不足的長度會用空白補上.儲存一個字元需要2個位元組.
nvarchar:長度是設定的,最短為1位元組,最長為4000個位元組.尾部的空白會去掉.儲存一個字元需要2個位元組.
ntext:長度是設定的,最短為1位元組,最長為2G.尾部的空白會去掉,儲存一個字元需要2個位元組.
第七大類:貨幣數據類型
money:記錄金額范圍為:-92233720368577.5808至92233720368577.5807.需要8 個位元組.
smallmoney:記錄金額范圍為:-214748.3648至214748.36487.需要4個位元組.
第八大類:標記數據
timestamp:該數據類型在每一個表中是唯一的!當表中的一個記錄更改時,該記錄的timestamp欄位會自動更新.
uniqueidentifier:用於識別資料庫裡面許多個表的唯一一個記錄.
第九大類:二進制碼字元串數據
binary:固定長度的二進制碼字元串欄位,最短為1,最長為8000.
varbinary:與binary差異為數據尾部是00時,varbinary會將其去掉
image:為可變長度的二進制碼字元串,最長2G.