To sprawiło, że przeczytałem, a odpowiedź wydaje się być wyraźnie niezadowalająca. Najwcześniejsze odniesienie SQL, jakie udało mi się znaleźć (ANSI 92 dostępne tutaj ) w sekcji 4.4.1 Charakterystyka liczb stwierdza, że
Co pozostawia Microsoftowi, który z dwóch wybrał zaimplementować dla T-SQL i zakładam, że dla uproszczenia wybrali obcięcie. Z artykułu wikipedii na temat zaokrąglania wygląda na to, że nie była to rzadka decyzja w tamtych czasach.
Warto zauważyć, że zgodnie z dokumentacją, którą znalazłem, tylko konwersje na liczby całkowite powodują obcięcie, pozostałe powodują zaokrąglenia. Chociaż z jakiegoś dziwnego powodu konwersja z money
na integer
wydaje się przeciwstawiać trendowi, ponieważ można go zaokrąglać.
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
Tabela z tutaj .