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 .