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

Chuyển đổi ngầm định và làm tròn

Điều này khiến tôi phải đọc và câu trả lời dường như không hài lòng rõ ràng. Tham chiếu SQL sớm nhất mà tôi có thể tìm thấy (ANSI 92 có sẵn tại đây ) trong phần 4.4.1 Đặc điểm của số nói rằng

Điều đó để lại cho Microsoft cái nào trong số hai cái mà họ chọn để triển khai cho T-SQL và tôi cho rằng vì đơn giản, họ đã chọn cách cắt bớt. Từ bài viết wikipedia về làm tròn có vẻ như đây không phải là một quyết định phổ biến trong ngày.

Thật thú vị khi lưu ý rằng, theo tài liệu tôi tìm thấy, chỉ các chuyển đổi thành số nguyên mới gây ra cắt ngắn, các chuyển đổi khác gây ra làm tròn. Mặc dù vì một số lý do kỳ lạ, việc chuyển đổi từ money thành integer dường như đi ngược lại xu hướng khi nó được phép thay đổi.

From     To       Behaviour

numeric  numeric  Round

numeric  int      Truncate

numeric  money    Round

money    int      Round

money    numeric  Round

float    int      Truncate

float    numeric  Round

float    datetime Round

datetime int      Round

Bảng từ tại đây .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn chỉ mục tạo lại máy chủ SQL

  2. Chọn hàng đầu tiên cho mỗi nhóm

  3. Các hàng nắm giữ mức tối đa theo nhóm của một cột nhất định (cách loại bỏ các bản sao ...)

  4. Câu lệnh select lồng nhau trong SQL Server

  5. Sai mili giây khi chuyển đổi từ XML sang SQL Server datetime