sql >> Databasteknik >  >> RDS >> Sqlserver

Implicita omvandlingar och avrundning

Detta fick mig att läsa och svaret verkar vara klart otillfredsställande. Den tidigaste SQL-referens jag har kunnat hitta (ANSI 92 tillgänglig här ) i avsnitt 4.4.1 Egenskaper för siffror uppger att

Vilket lämnar upp till Microsoft vilken av de två de valde att implementera för T-SQL och jag antar för enkelhetens skull att de valde trunkering. Från wikipediaartikeln om avrundning det verkar som att detta inte var ett ovanligt beslut förr i tiden.

Det är intressant att notera att enligt dokumentationen jag hittade är det bara konverteringar till heltal som orsakar trunkering, de andra orsakar avrundning. Även om konverteringen från money av någon bisarr anledning till integer verkar motverka trenden när den tillåts runda.

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

Tabell från här .




  1. PHP MYSQL SUM totalt men visa rader

  2. Tabell specificerad två gånger i Procedur, hur fixar jag?

  3. MariaDB JSON_EXTRACT() Förklarad

  4. Visar MySQL-frågeresultat från Servlet till JSP