一般用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 數值所需的位元組數取決於該數據的數字總數和小數點右邊的小數位數。
『貳』 sql 貨幣的欄位要求取出萬,千,百、。。。分位上的數字 怎麼寫啊/
教你一種最簡單的方法。你貨幣用的是money類型吧?
假如說1萬它就顯示為10000.00
可以用字元截取函數實現。例:select
substring('10000',1,1)
返回1。'10000'是貨幣,第一個1代表從第一位開始截取,第二個一表示截取1位,也就是從10000的第一位開始截取,截取1位,結果就是1,明白否?
可以用下面的語句進行截取萬位的數字,根據你自己的條件修改語句吧。
select
substring(convert(nvarchar(10),貨幣欄位),1,1)
ps:貨幣類型是money不能直接使用substring
所以先convert轉換。
『叄』 SQL,貨幣型總額計算!
as後面不要用jnall換成其他的不要和表中的欄位重名
『肆』 Sql語句 設置MONEY格式為貨幣格式!
default 0 意思就是 默認值是0
也就是 如果你插入數據的時候, 如果這一列, 不傳數據, 那就就使用默認值來填寫這個欄位。
『伍』 如何在 Sql Server 中實現貨幣格式的相關推薦
/*
是小寫轉大寫么?
Select dbo.fn_ChnMoney(100.5) --壹佰元零伍分
*/
Create FUNCTION fn_ChnMoney(@decNum decimal(18,2))
RETURNS varchar(200)
AS
BEGIN
DECLARE @chvNum varchar(200)
DECLARE @chvMoney varchar(200)
DECLARE @chvTemp varchar(200)
DECLARE @intIntLen int
DECLARE @intI int
DECLARE @chvTempI varchar(200)
DECLARE @chvReturn varchar(200)
DECLARE @sFsFlag int
SET @sFsFlag = 0
IF @decNum=0
SET @chvReturn = '零'
Else
BEGIN
IF @decNum<0
BEGIN
SET @sFsFlag = 1
SET @decNum = ABS(@decNum)
END
SET @chvTemp=convert(varchar(200),Round(@decNum*100,0))
IF charindex('.',@chvTemp,1)>0
SET @chvNum=left(@chvTemp,charindex('.',@chvTemp,1)-1)
ELSE
SET @chvNum=@chvTemp
SET @intIntLen=len(@chvNum)
SET @chvMoney=''
Set @chvReturn = ''
SET @intI=1
WHILE @intI <= @intIntLen
BEGIN
SET @chvTempI = substring(@chvNum,@intIntLen-@intI+1,1)
SET @chvMoney = substring('零壹貳叄肆伍陸柒捌玖',convert(int,@chvTempI)+1,1) + substring('分角元拾佰仟萬拾佰仟億拾佰仟兆拾佰仟京拾佰仟',(@intI-1)+1,1)
SET @intI = @intI + 1
SET @chvReturn = @chvMoney + @chvReturn
END
END
SET @chvReturn=Replace(@chvReturn,'零仟','零')
SET @chvReturn=Replace(@chvReturn,'零佰','零')
SET @chvReturn=Replace(@chvReturn,'零拾','零')
while charindex('零零',@chvReturn,1)>0
SET @chvReturn=Replace(@chvReturn,'零零','零')
SET @chvReturn=Replace(@chvReturn,'零京','京')
SET @chvReturn=Replace(@chvReturn,'零兆','兆')
SET @chvReturn=Replace(@chvReturn,'零億','億')
SET @chvReturn=Replace(@chvReturn,'零萬','萬')
SET @chvReturn=Replace(@chvReturn,'京兆','京')
SET @chvReturn=Replace(@chvReturn,'京億','京')
SET @chvReturn=Replace(@chvReturn,'京萬','京')
SET @chvReturn=Replace(@chvReturn,'兆億','兆')
SET @chvReturn=Replace(@chvReturn,'兆萬','兆')
SET @chvReturn=Replace(@chvReturn,'億萬','億')
SET @chvReturn=Replace(@chvReturn,'零元','元')
SET @chvReturn=Replace(@chvReturn,'零角零分','整')
SET @chvReturn=Replace(@chvReturn,'零角','零')
SET @chvReturn=Replace(@chvReturn,'零分','整')
SET @chvReturn=LTRIM(RTRIM(@chvReturn))
IF @sFsFlag = 1
SET @chvReturn = '負' + Ltrim(@chvReturn)
RETURN @chvReturn
END
『陸』 SQL里怎麼來實現「金錢值」+漢字的查詢存儲過程
頁面上你用
5月1號A店總銷售:<label id="food"></label>
後台
用個string data[] =你的查詢方法,這樣把數據全部裝在data裡面
然後賦值給label就可以了
food.text=data["food"];
data["food"]這裡面的food是你資料庫那個食品欄位
『柒』 sql 貨幣四捨五入
1> SELECT ROUND(1.56, 0), ROUND(1.56,1), ROUND(12.34, -2)
2> go
----- ----- ------
2.00 1.60 .00
(1 行受影響)
ROUND 函數可以處理 四捨五入
SQL Server 2005 可以用的, 2000沒環境測試。
『捌』 利用access SQL語句求股票的實際收益
--試試下面的sql語句
selectb.股票名稱,sum(b.收益)已收益,sum(b.持有數量)當前持有數量from(select股票名稱,(casewhena.投資行為='買'thena.交易數量else(-1)*a.交易數量end)持有數量,(casewhena.投資行為='買'then(-1)*a.交易金額elsea.交易金額end)收益froma)bgroupbyb.股票名稱
『玖』 sql server 貨幣 欄位 類型 一般用什麼類型
貨幣的欄位類型一般有int,float,money/smallmoney,decimal/numberic。
根據存儲數據的精度不同選擇:
int只能存儲整數的錢。
money/smallmoney數據類型精確到它們所代表的貨幣單位的萬分之一 。
decimal/numberic 可以自定義小數位和能存儲的數據精度, 所以一般使用這種類型的人會多一些。
float 對貨幣這種需要精確值的數值不合適。
總結:
在財務方面最好實用money與decimal類型。
如果是簡單的計算可以使用float類型,不過float類型在有些平台上取出數據並不是那麼准確,有可能會丟失精度。所以說如果在性能穩定的平台中,開銷不是很大,建議使用以上兩種類型。
(9)sql菜單金錢計算擴展閱讀:
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之間的浮點數。
『拾』 在c#中如何用sql語句向access中插入貨幣值啊
Access 好像沒有money類型,插入數據和欄位類型沒關系,因為保留幾位小數是在money中設置的
count還是sum或者直接循環相加