Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Bạn nên chọn kiểu dữ liệu MONEY hay DECIMAL (x, y) trong SQL Server?

Không bao giờ bạn nên sử dụng tiền. Nó không chính xác, và nó là rác tinh khiết; luôn sử dụng số thập phân / số.

Chạy cái này để xem ý tôi là gì:

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

Sản lượng:2949.0000 2949.8525

Đối với một số người đã nói rằng bạn không chia tiền theo tiền:

Đây là một trong những truy vấn của tôi để tính toán các mối tương quan và việc đổi nó thành tiền sẽ cho kết quả sai.

select t1.index_id,t2.index_id,(avg(t1.monret*t2.monret)
    -(avg(t1.monret) * avg(t2.monret)))
            /((sqrt(avg(square(t1.monret)) - square(avg(t1.monret))))
            *(sqrt(avg(square(t2.monret)) - square(avg(t2.monret))))),
current_timestamp,@MaxDate
            from Table1 t1  join Table1 t2  on t1.Date = traDate
            group by t1.index_id,t2.index_id


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cập nhật tài khoản thư cơ sở dữ liệu trong SQL Server (T-SQL)

  2. Khóa chính tổng hợp so với cột ID bổ sung?

  3. Kiểm tra sao lưu máy chủ SQL

  4. Bản xem trước công khai đầu tiên của SQL Server 2019:CTP 2.0

  5. Truy vấn SQL để nhận kết quả tổng hợp trong dấu phân cách dấu phẩy cùng với nhóm theo cột trong SQL Server