㈠ mysql 存儲金額類型,用什麼數據類型比較可靠,一般企業數據用什麼數據類型
對於游戲幣等代幣,一般存儲為int類型是可行的。問題在於越界,int類型長度為11位。
在存儲人民幣相關的金額的時候,則只能存儲到9長度的人民幣,也就是說,最大隻能存儲999999999,不到10億的數值,如果業務增長很快的話,就會給自己留下隱患。
Decimal:Decimal為專門為財務相關問題設計的數據類型。
DECIMAL從MySQL 5.1引入,列的聲明語法是DECIMAL(M,D)。在MySQL 5.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) 的最大值為9 9 9 9 . 9 9,因為有7 個位元組可用。能夠解決數據的范圍和精度的問題。
(1)金額在資料庫中能用字元型嗎擴展閱讀
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屬性,則DECIMAL UNSIGNED的列將不接受負值。
如果使用ZEROFILL,MySQL將把顯示值填充到0以顯示由列定義指定的寬度。 另外,如果我們對DECIMAL列使用ZERO FILL,MySQL將自動將UNSIGNED屬性添加到列。
㈡ access資料庫中如何實現金額數字大小寫轉換如何實現
以下代碼可以實現你說的功能,如下:
Function CaseMoney &&Edit By daly
PARA Money
*辨別是否是數字金額
IF TYPE("Money") #"N"
=messagebox(" 金額類型出錯",0,_screen.caption)
Return " "
EndIF
*轉換金額為字元型
IF Money>9999999999999.99
=messagebox(" 數值太大,無法處理",0,_screen.caption)
Return " "
EndIF
CMoney=Allt(Str(Money,16,2))
㈢ sql server 貨幣 欄位 類型 一般用什麼類型
貨幣的欄位類型一般有int,float,money/smallmoney,decimal/numberic。
根據存儲數據的精度不同選擇:
int只能存儲整數的錢。
money/smallmoney數據類型精確到它們所代表的貨幣單位的萬分之一 。
decimal/numberic 可以自定義小數位和能存儲的數據精度, 所以一般使用這種類型的人會多一些。
float 對貨幣這種需要精確值的數值不合適。
總結:
在財務方面最好實用money與decimal類型。
如果是簡單的計算可以使用float類型,不過float類型在有些平台上取出數據並不是那麼准確,有可能會丟失精度。所以說如果在性能穩定的平台中,開銷不是很大,建議使用以上兩種類型。
(3)金額在資料庫中能用字元型嗎擴展閱讀:
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】金額如果存在資料庫中應該使用何種類型
一般用money或decimal或numeric,而不用float或double,因為容易出現"失真".
money貨幣數據存儲的精確度為四位小數。可以存儲在 money 數據類型中的值的范圍是 -922,337,203,685,477.5808 至 +922,337,203,685,477.5807(需 8 個位元組的存儲空間)。
在 SQL Server中,numeric 數據類型等價於 decimal 數據類型。存儲 decimal 或 numeric 數值所需的位元組數取決於該數據的數字總數和小數點右邊的小數位數。
㈤ 資料庫中定義金額欄位,用Decimal好還是varchar好,請說一下兩者差異
當然是decimal好了,做報表計算價格就不需要convert了呀。。
㈥ 用asp從Sql Server 2005 資料庫裡面取出的money類型數據,是字元串而不是數字類型,不能用於運算
Rs.fields("Test_No").value 這樣取欄位的值試試。應該是數值。
㈦ mysql資料庫中有幾種數據類型
MySQL數據類型之一字元型
VARCHAR VS CHAR
VARCHAR型和CHAR型數據的這個差別是細微的,但是非常重要。他們都是用來儲存字元串長度小於255的字元。
假如你向一個長度為四十個字元的VARCHAR型欄位中輸入數據Bill Gates。當你以後從這個欄位中取出此數據時,你取出的數據其長度為十個字元——字元串Bill Gates的長度。 現在假如你把字元串輸入一個長度為四十個字元的CHAR型欄位中,那麼當你取出數據時,所取出的數據長度將是四十個字元。字元串的後面會被附加多餘的空格。
當你建立自己的站點時,你會發現使用VARCHAR型欄位要比CHAR型欄位方便的多。使用VARCHAR型欄位時,你不需要為剪掉你數據中多餘的空格而操心。
VARCHAR型欄位的另一個突出的好處是它可以比CHAR型欄位佔用更少的內存和硬碟空間。當你的資料庫很大時,這種內存和磁碟空間的節省會變得非常重要
MySQL數據類型之二文本型
TEXT
使用文本型數據,你可以存放超過二十億個字元的字元串。當你需要存儲大串的字元時,應該使用文本型數據。
注意文本型數據沒有長度,而上一節中所講的字元型數據是有長度的。一個文本型欄位中的數據通常要麼為空,要麼很大。
當你從HTML form的多行文本編輯框(TEXTAREA)中收集數據時,你應該把收集的信息存儲於文本型欄位中。但是,無論何時,只要你能避免使用文本型欄位,你就應該不適用它。文本型欄位既大且慢,濫用文本型欄位會使伺服器速度變慢。文本型欄位還會吃掉大量的磁碟空間。
一旦你向文本型欄位中輸入了任何數據(甚至是空值),就會有2K的空間被自動分配給該數據。除非刪除該記錄,否則你無法收回這部分存儲空間。
MySQL數據類型之三數值型
SQL支持許多種不同的數值型數據。你可以存儲整數 INT 、小數 NUMERIC、和錢數 MONEY。
INT VS SMALLINT VS TINYINT
他們的區別只是字元長度:
INT型數據的表數范圍是從-2,147,483,647到2,147,483,647的整數
SMALLINT 型數據可以存儲從-32768到32768的整數
TINYINT 型的欄位只能存儲從0到255的整數,不能用來儲存負數
通常,為了節省空間,應該盡可能的使用最小的整型數據。一個TINYINT型數據只佔用一個位元組;一個INT型數據佔用四個位元組。這看起來似乎差別不大,但是在比較大的表中,位元組數的增長是很快的。另一方面,一旦你已經創建了一個欄位,要修改它是很困難的。因此,為安全起見,你應該預測以下,一個欄位所需要存儲的數值最大有可能是多大,然後選擇適當的數據類型。
MUNERIC
為了能對欄位所存放的數據有更多的控制,你可以使用NUMERIC型數據來同時表示一個數的整數部分和小數部分。NUMERIC型數據使你能表示非常大的數——比INT型數據要大得多。一個NUMERIC型欄位可以存儲從-1038到1038范圍內的數。NUMERIC型數據還使你能表示有小數部分的數。例如,你可以在NUMERIC型欄位中存儲小數3.14。
當定義一個NUMERIC型欄位時,你需要同時指定整數部分的大小和小數部分的大小。如:MUNERIC(23,0)
一個 NUMERIC型數據的整數部分最大隻能有28位,小數部分的位數必須小於或等於整數部分的位數,小數部分可以是零。
MONEY VS SMALLMONEY
你可以使用 INT型或NUMERIC型數據來存儲錢數。但是,專門有另外兩種數據類型用於此目的。如果你希望你的網點能掙很多錢,你可以使用MONEY型數據。如果你的野心不大,你可以使用SMALLMONEY型數據。MONEY型數據可以存儲從-922,337,203,685,477.5808到922,337,203,685,477.5807的錢數。如果你需要存儲比這還大的金額,你可以使用NUMERIC型數據。
SMALLMONEY型數據只能存儲從-214,748.3648到214,748.3647 的錢數。同樣,如果可以的話,你應該用SMALLMONEY型來代替MONEY型數據,以節省空間。
MySQL數據類型之四邏輯型
BIT
如果你使用復選框( CHECKBOX)從網頁中搜集信息,你可以把此信息存儲在BIT型欄位中。BIT型欄位只能取兩個值:0或1。
當心,在你創建好一個表之後,你不能向表中添加 BIT型欄位。如果你打算在一個表中包含BIT型欄位,你必須在創建表時完成。
MySQL數據類型之五日期型
DATETIME VS SMALLDATETIME
一個 DATETIME型的欄位可以存儲的日期范圍是從1753年1月1日第一毫秒到9999年12月31日最後一毫秒。
如果你不需要覆蓋這么大范圍的日期和時間,你可以使用SMALLDATETIME型數據。它與DATETIME型數據同樣使用,只不過它能表示的日期和時間范圍比DATETIME型數據小,而且不如DATETIME型數據精確。一個SMALLDATETIME型的欄位能夠存儲從1900年1月1日到2079年6月6日的日期,它只能精確到秒。
DATETIME型欄位在你輸入日期和時間之前並不包含實際的數據,認識這一點是重要的。
㈧ 為什麼資料庫能寫入數值型,不能寫入字元型。我的數據類型是文本的,應該可以寫入才對啊。
首先,你是用代碼執行嗎發你執行的代碼來看看。。。
如果你是直接操作資料庫的,首先,你應該檢查你的資料庫是否存在約束,如果有約束的話是不能隨便添加的,嘗試刪除約束或者關系之後重新嘗試一遍。。。
如果用代碼的話我需要看了代碼之後我才知道你的代碼有什麼錯誤,貼上來看看
㈨ oracle中,用什麼數據類型表示貨幣的數據類型
Oracle中的數據類型有:字元型、數字型、日期型等。具體介紹如下:
字元型:
char(n):用於標識固定長度的字元串。
當實際數據不足定義長度時,使用空格補全右邊不足位。varchar(n):可變字元串類型。
為SQL標准規定的,資料庫必須實現的數據據類型。可以存儲空字元串。
varchar2(n):可變字元串類型,是oracle在varchar的基礎上自行定義的可變長度字元串類型。當做為列類型使用時,最大長度可被定義為4000;當做為變數類型使用時,長度可被定義為32767。不可以存儲空字元串。
(9)金額在資料庫中能用字元型嗎擴展閱讀:
數據元一般由對象類、特性和表示3部分組成:
(1)對象類(Object Class)。是現實世界或抽象概念中事物的集合,有清楚的邊界和含義,並且特性和其行為遵循同樣的規則而能夠加以標識。
(2)特性(Property)。是對象類的所有個體所共有的某種性質,是對象有別於其他成員的依據。
(3)表示(Representation)。是值域、數據類型、表示方式的組合,必要時也包括計量單位、字元集等信息。
對象類是我們所要研究、收集和存儲相關數據的實體,例如人員、設施、裝備、組織、環境、物資等。特性是人們用來區分、識別事物的一種手段,例如人員的姓名、性別、身高、體重、職務,坦克的型號、口徑、高度、長度、有效射程等。
表示是數據元被表達的方式的一種描述。表示的各種組成成分中,任何一個部分發生變化都將產生不同的表示,例如人員的身高用「厘米」或用「米」作為計量單位,就是人員身高特性的兩種不同的表示。
㈩ sqlserver 建資料庫時表示時間,金額和重量的欄位用什麼數據類型好,有人說全用nvarchar因為好操作,求解
時間:DateTime
金額:money 或 numeric(18,2). numeric主要是方便定義小數位數,money限死了只有四位
重量: numeric , 不需要精度的就 numeric(12,0), 需要精度就 numer(30,n)