sql >> Database >  >> RDS >> Sqlserver

Impliciete conversies en afronding

Dit zette me aan het lezen en het antwoord lijkt duidelijk onbevredigend, de vroegste SQL-referentie die ik heb kunnen vinden (ANSI 92 beschikbaar hier ) in sectie 4.4.1 Kenmerken van getallen stelt dat

Wat het aan Microsoft overlaat welke van de twee ze hebben gekozen om te implementeren voor T-SQL en ik neem aan dat ze omwille van de eenvoud hebben gekozen voor inkorting. Uit het wikipedia-artikel over afronding het lijkt erop dat dit destijds geen ongebruikelijke beslissing was.

Het is interessant om op te merken dat, volgens de documentatie die ik heb gevonden, alleen conversies naar gehele getallen truncatie veroorzaken, terwijl de andere afrondingen veroorzaken. Hoewel om de een of andere bizarre reden de conversie van money naar integer lijkt tegen de trend in te gaan omdat het mag worden afgerond.

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 van hier .




  1. Wat is de gemakkelijkste manier om de start- en einddatum van een sprint uit de JIRA-database te halen?

  2. SQL:Binair naar IP-adres

  3. Gladde dynamische groupby

  4. Mangento op localhost verwijst naar online site