Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Konversi dan pembulatan implisit

Ini membuat saya membaca dan jawabannya tampaknya sangat tidak memuaskan, Referensi SQL paling awal yang dapat saya temukan (ANSI 92 tersedia di sini ) di bagian 4.4.1 Karakteristik bilangan menyatakan bahwa

Yang menyerahkannya kepada Microsoft yang mana dari keduanya yang mereka pilih untuk diterapkan untuk T-SQL dan saya berasumsi demi kesederhanaan mereka memilih pemotongan. Dari artikel wikipedia tentang pembulatan sepertinya ini bukan keputusan yang tidak biasa di masa lalu.

Sangat menarik untuk dicatat bahwa, menurut dokumentasi yang saya temukan, hanya konversi ke bilangan bulat yang menyebabkan pemotongan, yang lain menyebabkan pembulatan. Meskipun untuk beberapa alasan aneh konversi dari money ke integer tampaknya melawan tren karena diizinkan untuk berputar.

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

Tabel dari di sini .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Waktu kueri habis saat dijalankan dari web, tetapi sangat cepat saat dijalankan dari SSMS

  2. Apakah ada .NET yang setara dengan newsequentialid() SQL Server ()

  3. Buat daftar kueri yang berjalan di SQL Server

  4. Pisahkan string yang dipisahkan koma dan sisipkan ke tabel (int)

  5. Saya mendapatkan upaya telah dilakukan untuk memuat program dengan kesalahan format yang salah pada proyek replikasi SQL Server