資料庫金額類型
⑴ sql server 貨幣 欄位 類型 一般用什麼類型
貨幣的欄位類型一般有int,float,money/smallmoney,decimal/numberic。
根據存儲數據的精度不同選擇:
int只能存儲整數的錢。
money/smallmoney數據類型精確到它們所代表的貨幣單位的萬分之一 。
decimal/numberic 可以自定義小數位和能存儲的數據精度, 所以一般使用這種類型的人會多一些。
float 對貨幣這種需要精確值的數值不合適。
總結:
在財務方面最好實用money與decimal類型。
如果是簡單的計算可以使用float類型,不過float類型在有些平台上取出數據並不是那麼准確,有可能會丟失精度。所以說如果在性能穩定的平台中,開銷不是很大,建議使用以上兩種類型。
(1)資料庫金額類型擴展閱讀:
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之間的浮點數。
⑵ sqlserver 建資料庫時表示時間,金額和重量的欄位用什麼數據類型好,有人說全用nvarchar因為好操作,求解
時間:DateTime
金額:money 或 numeric(18,2). numeric主要是方便定義小數位數,money限死了只有四位
重量: numeric , 不需要精度的就 numeric(12,0), 需要精度就 numer(30,n)
⑶ mysql存儲金額類型,用什麼數據類型比較可靠,一般企業數據用什麼數據類型
對於游戲幣等代幣,一般存儲為int類型是可行的。問題在於越界,int類型長度為11位。
在存儲人民幣相關的金額的時候,則只能存儲到9長度的人民幣,也就是說,最大隻能存儲999999999,不到10億的數值,如果業務增長很快的話,就會給自己留下隱患。
Decimal:Decimal為專門為財務相關問題設計的數據類型。
DECIMAL從MySQL5.1引入,列的聲明語法是DECIMAL(M,D)。在MySQL5.1中,參量的取值范圍如下:M是數字的最大數(精度)。其范圍為1~65(在較舊的MySQL版本中,允許的范圍是1~254),M的默認值是10。
D是小數點右側數字的數目(標度)。其范圍是0~30,但不得超過M。說明:float佔4個位元組,double佔8個位元組,decimail(M,D)佔M+2個位元組。
如DECIMAL(5,2)的最大值為9999.99,因為有7個位元組可用。能夠解決數據的范圍和精度的問題。
(3)資料庫金額類型擴展閱讀
MySQL數據類型DECIMAL用法:
MySQLDECIMAL數據類型用於在資料庫中存儲精確的數值。我們經常將DECIMAL數據類型用於保留准確精確度的列,例如會計系統中的貨幣數據。
要定義數據類型為DECIMAL的列,請使用以下語法:column_nameDECIMAL(P,D);
在上面的語法中:
P是表示有效數字數的精度。P范圍為1〜65。
D是表示小數點後的位數。D的范圍是0~30。MySQL要求D小於或等於(<=)P。
DECIMAL(P,D)表示列可以存儲D位小數的P位數。十進制列的實際范圍取決於精度和刻度。
與INT數據類型一樣,DECIMAL類型也具有UNSIGNED和ZEROFILL屬性。如果使用UNSIGNED屬性,則DECIMALUNSIGNED的列將不接受負值。
如果使用ZEROFILL,MySQL將把顯示值填充到0以顯示由列定義指定的寬度。另外,如果我們對DECIMAL列使用ZEROFILL,MySQL將自動將UNSIGNED屬性添加到列。
⑷ MySQL資料庫存儲價格金額用什麼數據類型好
decimal這個是專門處理金額值的,java類型對應BigDecimal 推薦看下扛得住的MySQL資料庫架構-項目實戰哈
⑸ 資料庫中金額是number類型的,寫程序時javaBean中應該是什麼類型
當然是double類型的了,這個類型最為常用,而且很大不會溢出,在java語言中,有幾種默認的數據類型,比如說整型默認為int,浮點型默認為double,所以在編寫程序的時候我們使用最多的就是int型和double型了,只有比較特別的情況下才使用其他的類型。而資料庫中number是包含小數的,因此最好用double型吧。
⑹ 資料庫中定義金額欄位,用Decimal好還是varchar好,請說一下兩者差異
當然是decimal好了,做報表計算價格就不需要convert了呀。。
⑺ 為什麼資料庫涉及到錢要用decimal啊
Decimal在sql server里是精確值類型,精度38,Decimal 類型具有更高的精度和更小的范圍,它適合於財務和貨幣計算。它可避免浮點數計算誤差,Decimal是以字元串的形式保存精確的原始數值。
⑻ 資料庫建表時,單價,總價,稅率,各用什麼數據類型來表示好呢
decimal(18,0)解釋: 括弧內第一個參數18表示可存儲數據位數,第二個參數 0 表示精度,即,保留到哪一位; 如 DECIMAL(8,2) 類型欄位 里存儲數據1234.1234,那麼存在資料庫中的值就成了:1234.12
⑼ mysql設計資料庫錢用什麼欄位
通常在處理金額方面,使用float 和double 明顯不夠精確。
設置欄位使用decimal 後面不寫默認是(10)。根據情況可以設置第二個參數,第二個參數是需要保留的位數,在java 中也不能直接使用 + - * / 方法來計算。使用bigDecimal 處理加法:add 減法:substract 乘法:multiply 除法:divdie。計算