Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Разлика между числови, плаващи и десетични числа в SQL Server

използвайте float или истински типове данни само ако точността, осигурена от десетични (до 38 цифри) е недостатъчно

  • Приблизителните числови типове данни (вижте таблица 3.3) не съхраняват точните стойности, посочени за много числа; съхраняватизключително близо приближение на стойността.(Technet)

  • Избягвайте използването на float или реални колони в условията за търсене на клауза WHERE, особено операторите =и <>. Най-добре е да ограничите float и реалните колони до> или <сравнения. (Technet)

така че обикновено изборът на десетичен за тип данни е най-добрият залог, ако

  • Вашият номер може да се побере в него. Десетична точност е 10E38[~ 38 цифри]
  • по-малкото място за съхранение (и може би скоростта на изчисление) на Float не е важно за вас
  • изисква се точно числово поведение, като например във финансови приложения, при операции, включващи закръгляване или при проверки за равенство. (Technet)
  1. Точно Числови типове данни десетични и числови - MSDN
  • числов =десетичен знак (5 до 17 байта)
    • ще се преобразува в десетичен в .NET
    • и двете имат (18, 0) като параметри по подразбиране (прецизност, мащаб) в SQL сървър
    • мащаб =максимален брой десетични цифри, които могат да бъдат съхранени вдясно от десетичната запетая.
    • money (8 байта) и smallmoney (4 байта) също са точен тип данни и ще се преобразуват в десетичен в .NET и имат 4 десетични точки (MSDN)
  1. Приблизително Числов тип данни float и real - MSDN
  • реален (4 байта)
    • ще се преобразува в Single в .NET
    • Синонимът на ISO за real е float(24)
  • float (8 байта)
    • ще се преобразува в Double в .NET

  • Всички точни числовите типове винаги дават един и същ резултат, независимо кой вид архитектура на процесора се използва или големината на числата
  • Параметърът, предоставен на типа данни с плаваща запетая, дефинира броя на битовете, които се използват за съхраняване на мантисата на числото с плаваща запетая .
  • Приблизителният числов тип данни обикновено използва по-малко място за съхранение и има по-добра скорост (до 20x) и трябва също да вземете предвид кога са били преобразувани в .NET
  • Каква е разликата между Decimal, Float и Double в C#
  • Десетична срещу двойна скорост
  • SQL сървър – съпоставяне на типове данни .NET (от MSDN)

основен източник :Комплект за самостоятелно обучение MCTS (изпит 70-433):Microsoft® SQL Server® 2008 Разработка на база данни - Глава 3 - Таблици, типове данни и декларативна целостта на данните Урок 1 - Избор на типове данни (Насоки) - Страница 93



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Настройка на зависимостта на maven за SQL Server

  2. Как да деактивирате CDC върху набор от таблици ИЛИ да деактивирате за всички таблици в база данни в SQL Server - урок за SQL Server

  3. Как да инсталирате SQL Server Manager Studio (SSMS) - SQL Server / TSQL урок, част 1

  4. Получаване на странна грешка, SQL Server заявка с помощта на клауза `WITH`

  5. получавате разделен със запетая низ от редове