sql >> Databáze >  >> RDS >> Sqlserver

Implicitní převody a zaokrouhlování

To mě dostalo k přečtení a odpověď se zdá být zřetelně neuspokojivá, Nejstarší SQL reference, kterou jsem byl schopen najít (ANSI 92 k dispozici zde ) v sekci 4.4.1 Charakteristiky čísel uvádí, že

Což nechává na Microsoftu, který z těchto dvou se rozhodl implementovat pro T-SQL a předpokládám, že pro jednoduchost zvolili zkrácení. Z článku o zaokrouhlování na wikipedii zdá se, že to tehdy nebylo neobvyklé rozhodnutí.

Je zajímavé poznamenat, že podle dokumentace, kterou jsem našel, pouze převody na celá čísla způsobují zkrácení, ostatní způsobují zaokrouhlování. I když z nějakého bizarního důvodu konverze z money na integer Zdá se, že vzdoruje trendu, protože je dovoleno zaokrouhlovat.

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

Tabulka z zde .




  1. Jaký typ dat MySQL by měl být použit pro zeměpisnou šířku/délku s 8 desetinnými místy?

  2. Many-to-many v sqlalchemy. Zabránění SQLAlchemy ve vkládání do tabulky, pokud značka již existuje

  3. Laravel s Dockerem problém s připojením MySQL

  4. Chyby objevující se v kódu mysqli a call_user_func_array()