Tôi có loại dữ liệu tiền trong SQL Server. Làm cách nào để định dạng lại từ 0 đến 0 trong truy vấn của tôi?Làm cách nào để chuyển đổi từ một kiểu dữ liệu tiền trong máy chủ SQL?
Trả lời
Bạn có thể truyền nội dung đó để giúp bạn không? Tiền có nghĩa là có số thập phân ...
DECLARE @test AS money
SET @test = 3
SELECT CAST(@test AS int), @test
Hi Tina, Bây giờ tôi đã nhận được kết quả mong đợi của mình. cảm ơn tuyệt vời .. :-) –
Trước hết, bạn không bao giờ nên sử dụng kiểu dữ liệu tiền. Nếu bạn thực hiện bất kỳ phép tính nào, bạn sẽ nhận được kết quả cắt ngắn. Chạy phần sau đây để thấy những gì tôi có nghĩa là
DECLARE
@mon1 MONEY,
@mon2 MONEY,
@mon3 MONEY,
@mon4 MONEY,
@num1 DECIMAL(19,4),
@num2 DECIMAL(19,4),
@num3 DECIMAL(19,4),
@num4 DECIMAL(19,4)
SELECT
@mon1 = 100, @mon2 = 339, @mon3 = 10000,
@num1 = 100, @num2 = 339, @num3 = 10000
SET @mon4 = @mon1/@mon2*@mon3
SET @num4 = @num1/@num2*@num3
SELECT @mon4 AS moneyresult,
@num4 AS numericresult
Output: 2949,0000 2949,8525
Bây giờ để trả lời câu hỏi của bạn (đó là một chút mơ hồ), các kiểu dữ liệu tiền luôn có hai địa điểm sau dấu thập phân. Sử dụng kiểu dữ liệu nguyên nếu bạn không muốn phần phân đoạn hoặc chuyển đổi thành int.
Có lẽ bạn muốn sử dụng kiểu dữ liệu thập phân hoặc số?
Microsoft Dynamics sử dụng loại dữ liệu tiền. Tôi thấy hôm nay. –
Làm thế nào hợp lệ là nó thực sự muốn nhiều $ 450,50 * $ 32,76, tôi ngồi đây trong một thời gian suy nghĩ của bất cứ lúc nào tôi thực sự muốn nhiều giá trị tiền với nhau, hoặc chia chúng. Tôi đã sử dụng sql ví dụ của bạn và thay đổi */để sử dụng + - và thậm chí bao bọc chúng trong một * và/và các giá trị cho mỗi lần khớp. –
Để biết các nhận xét chi tiết về câu trả lời này, hãy xem [câu trả lời này] (http://stackoverflow.com/questions/582797/should-you-choose-the-money-or-decimalx-y-datatypes-in-sql-server) –
Điều này có vẻ như là vấn đề về tạo hình cho tôi.
Theo loại tiền của SQL Server có liên quan 0 == 0.00
Nếu bạn đang cố gắng hiển thị 0 nói C# thay vì 0,00 bạn nên chuyển đổi thành chuỗi và định dạng theo ý muốn. (Hoặc cắt ngắn nó.)
chuyển đổi tiền bình thường mà vẫn duy trì xu cá nhân:
SELECT convert(varchar(30), moneyfield, 1)
Tham số cuối cùng quyết định những gì các định dạng đầu ra trông giống như:
0 (mặc định) Không dấu phẩy mỗi ba chữ số bên trái của dấu thập phân và hai chữ số ở bên phải dấu thập phân; ví dụ: 4235,98.
1 Mỗi ba chữ số ở bên trái dấu thập phân và hai chữ số ở bên phải dấu thập phân; ví dụ: 3,510,92.
2 Không có dấu phẩy mỗi ba chữ số ở bên trái dấu thập phân và bốn chữ số ở bên phải dấu thập phân; ví dụ: 4235.9819.
Nếu bạn muốn cắt ngắn đồng xu, và đếm trong bảng, bạn có thể sử dụng làm tròn đến đồng bảng Anh gần nhất, sàn cho toàn bộ bảng Anh thấp nhất, hoặc trần để làm tròn lên bảng:
SELECT convert(int, round(moneyfield, 0))
SELECT convert(int, floor(moneyfield))
SELECT convert(int, ceiling(moneyfield))
Điều này sẽ hoạt động nếu bạn muốn loại bỏ tất cả các giá trị penny, và không JUST khi nó là 0,00. Xem câu trả lời của tôi cho điều đó. –
Dường mặc dù giới hạn nội tại của kiểu dữ liệu tiền, nếu bạn đã sử dụng nó (hoặc đã thừa hưởng nó như tôi có), câu trả lời cho câu hỏi của bạn là, sử dụng DECIMAL.
bạn có thể sử dụng một trong hai
SELECT PARSENAME('$'+ Convert(varchar,Convert(money,@MoneyValue),1),2)
hoặc
SELECT CurrencyNoDecimals = '$'+ LEFT(CONVERT(varchar, @MoneyValue,1),
LEN (CONVERT(varchar, @MoneyValue,1)) - 2)
Bạn có thể thử như thế này:
SELECT PARSENAME('$'+ Convert(varchar,Convert(money,@MoneyValue),1),2)
tôi thấy approach này trực tiếp và hữu ích.
CONVERT (VARCHAR (10), CHUYỂN ĐỔI (TIỀN, fieldname)) AS GIÁ
Tôi có vấn đề này là tốt, và đã vấp lên trong một thời gian vào nó. Tôi muốn hiển thị 0,00 là 0 và nếu không giữ dấu thập phân. Các mục sau không hoạt động:
CASE WHEN Amount= 0 THEN CONVERT(VARCHAR(30), Amount, 1) ELSE Amount END
Do cột kết quả bị buộc phải là cột TIỀN. Để giải quyết nó, sau đây làm việc
CASE WHEN Amount= 0 THEN CONVERT(VARCHAR(30), '0', 1) ELSE CONVERT (VARCHAR(30), Amount, 1) END
mattered này vì cột đích cuối cùng của tôi là một VARCHAR (30), và người tiêu dùng của cột đó sẽ lôi ra nếu một lượng là '0.00' thay vì '0'.
- 1. Kiểu dữ liệu cho System.Version trong máy chủ sql
- 2. Trong SQL làm thế nào tôi có thể chuyển đổi một kiểu dữ liệu tiền thành số thập phân?
- 3. Máy chủ SQL - sao chép dữ liệu từ bảng dàn
- 4. Làm thế nào để bạn thay đổi kiểu dữ liệu của một cột trong MS SQL?
- 5. Làm thế nào để chuyển đổi một kiểu dữ liệu CLOB thành một String trong Hibernate?
- 6. Máy chủ SQL: biểu đồ chuyển đổi loại dữ liệu ẩn
- 7. Máy chủ SQL: Nhập cơ sở dữ liệu từ .mdf?
- 8. Làm cách nào tôi có thể chuyển đổi một cách có lập trình các kiểu dữ liệu SQL thành kiểu dữ liệu .Net?
- 9. Máy chủ SQL - Bảng siêu dữ liệu
- 10. Loại dữ liệu nào là GUID trong máy chủ SQL?
- 11. Cách tạo dữ liệu ngẫu nhiên trong máy chủ SQL
- 12. Lỗi khi chuyển đổi kiểu dữ liệu khi nhập từ Excel sang SQL Server 2008
- 13. Việc chuyển đổi một kiểu dữ liệu datetime2 đến một datetime kiểu dữ liệu Lỗi
- 14. Làm cách nào để thêm giá trị cột không đổi trong quá trình chuyển dữ liệu từ CSV sang SQL?
- 15. Máy chủ SQL: Kiểm tra kiểu dữ liệu của một cột
- 16. Làm thế nào để chuyển đổi máy chủ SQL sang Oracle?
- 17. Làm cách nào để trao đổi giá trị cột trong máy chủ sql 2008?
- 18. Cách thực hiện DELETE nhanh chóng nhiều dữ liệu từ một bảng lớn (máy chủ sql)
- 19. Làm thế nào để bạn PIVOT trên một kiểu dữ liệu bit trong SQL Server?
- 20. Làm thế nào để chuyển đổi datetime trong persian trong máy chủ sql
- 21. Máy chủ SQL, Chuyển đổi NTEXT sang NVARCHAR (MAX)
- 22. Làm cách nào để thay đổi kiểu dữ liệu cho một cột trong MySQL?
- 23. SQL Server để chuyển đổi kiểu Net
- 24. Làm cách nào để đổi tên một cột trong bảng cơ sở dữ liệu bằng SQL?
- 25. Cách chuyển một số dữ liệu từ máy chủ sang thiết bị android
- 26. Làm cách nào để thay đổi chủ sở hữu của cơ sở dữ liệu SQL Server?
- 27. Xem dữ liệu của bảng trong máy chủ sql 2008
- 28. Cách nhanh nhất để di chuyển từ máy chủ sql sang sqlite cho bộ dữ liệu lớn
- 29. Máy chủ SQL: Trích xuất Bảng Siêu dữ liệu (mô tả, trường và kiểu dữ liệu của chúng)
- 30. Làm thế nào để chèn dữ liệu nhị phân vào máy chủ sql bằng SSMS
Cung cấp thêm chi tiết và bạn có thể nhận được một số câu trả lời. –