Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Niejawne konwersje i zaokrąglanie

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 .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak odinstalować program SQL Server Management Studio (SSMS) — samouczek dotyczący SQL Server/TSQL, część 23.1

  2. Jak przekazać sqlparameter do IN()?

  3. Jak ustawić wartość zmiennej za pomocą „wykonaj” w t-sql?

  4. Jak mogę określić w SQL Server, czy zakres dat i godzin nakłada się na inny?

  5. Prawidłowa kolejność instalacji programu Visual Studio 2010 z SQL Server 2008 i Office 2007?