Sql

Numeric ms sql: decimal и numeric (Transact-SQL) — SQL Server

числовых типов данных в SQL Server

числовых типов данных в SQL Server — Tutlane

Здесь мы узнаем, что такое числовые типы данных в SQL Server, и как использовать числовые типы данных и различные типы числовых типов данных SQL.

Числовые типы данных SQL

В SQL числовые типы данных полезны, когда мы хотим вставить в столбцы только числовые значения. Используя числовые типы данных, мы можем определить столбцы, которые принимают только числовые значения.

 

Например, в таблице SQL, если мы хотим разрешить пользователям хранить только числовые значения в определенном столбце, нам нужно определить этот столбец как числовой тип данных. В SQL у нас есть два разных типа числовых типов данных:

  • Точные числовые типы данных
  •  Приблизительные числовые типы данных 

Типы точных числовых данных SQL

Типы точных числовых данных в sql полезны для хранения данных целочисленного типа. 15 — 1 (32 767) 938 –1

5–17 байт маленькие деньги Мы можем хранить денежные значения от -214 748,3648 до 214 748,3647 4 байта деньги Мы можем хранить денежные значения от -922 337 203 685 477,5808 до 922 337 203 685 477,5807 8 байт

Типы числовых данных SQL Approximate Numeric Data Types

В sql Approximate числовые типы данных используются для хранения числовых данных с плавающей запятой, т.е. данные с плавающей запятой являются приблизительными, поэтому не все значения в диапазоне типов данных могут быть представлены точно .

 

Тип данных Описание Размер хранилища
Float(n) Мы можем хранить значения от — 1.79E 308 до 1.79E 308 Зависит от значения n
реальный Мы можем хранить значения от — 3.
40E 38 до 3.40E 38
4 байта

Предыдущий

Далее  

Содержание


  • Числовые типы данных SQL Server
  • Точные числовые типы данных в SQL Server
  • Приблизительные числовые типы данных в SQL Server

Связаться с нами

  • Адрес: № 1-93, колония Почамма, Маниконда, Хайдарабад, Телангана — 500089
  • Электронная почта: [email protected]

Учебники

  • Учебники по веб-дизайну
  • Учебники по .NET
  • Учебники по JAVA
  • Учебники по базам данных

Компания

  • О нас
  • Свяжитесь с нами
  • Карьера
  • Часто задаваемые вопросы

Примеры

  • Примеры AngularJS
  • Примеры JavaScript
  • Примеры jQuery
  • Примеры CSS

Ресурсы

  • Блоги
  • Артикул
  • Новости
  • Форумы

Как исправить ошибку арифметического переполнения при преобразовании числового типа данных в числовой в SQL Server? Пример

Эта ошибка возникает, когда вы пытаетесь сохранить значение с плавающей запятой, выходящее за пределы допустимого диапазона, в числовую переменную.
Например, если ваша переменная NUMERIC или DECIMAL определена как NUMERIC(5,2), то максимальное значение, которое она может содержать, – 999,99. Если вы попытаетесь сохранить что-то вроде 1000,00, будет выдано сообщение «Ошибка арифметического переполнения при преобразовании числового типа в тип данных». числовое» . Одной из распространенных причин этой ошибки является незнание и непонимание типа данных NUMERIC. Например, многие администраторы баз данных и разработчики SQL Server считают, что переменная NUMERIC(5,2) может содержать 7-значное число с плавающей запятой, где 5 цифр идут до десятичной точки, а 2 – после. это неправильно .

NUMERIC(5,2) означает, что общее количество цифр в значении не может превышать 5, а десятичная точность равна 2 цифрам, т. е. максимально возможное значение равно 999,99.

Еще одна вещь, которую программисты SQL не знают и не помнят о типах данных NUMERIC или DECIMAL в Microsoft SQL Server, заключается в том, что он не выдает эту ошибку, если вы указываете больше цифр, чем разрешено, после десятичной точки, вместо этого он, например, округляет если вы сохраните 100,999, то после округления будет сохранено 101,00.

Вот SQL-запрос, подтверждающий эти пункты:

 DECLARE @sample NUMERIC(5,2)
УСТАНОВИТЬ @выборка = 1000,554
SELECT @sample 
Вывод
Ошибка арифметического переполнения при преобразовании числового типа данных в числовой.

Объяснение: На этот раз SQL Server выдает ошибку, потому что мы пытаемся сохранить 1000, но максимальное значение, которое может содержать NUMERIC(5,2), равно 999 до десятичной точки. Вам нужно увеличить ширину переменной, чтобы сохранить это число, например. создание @sample NUMERIC(6,2) устранит эту ошибку, как показано ниже.

Кстати, если вы новичок в Microsoft SQL Server и T-SQL, я также предлагаю вам записаться на комплексный курс, чтобы изучить основы SQL Server и научиться работать с T-SQL. Если вам нужна рекомендация, я предлагаю вам пройти онлайн-курс Microsoft SQL для начинающих Брюстера Ноултона на Udemy. Это отличный курс для начала работы с T-SQL и SQL-запросами в SQL Server.

Вот еще несколько запросов SQL, которые подтвердят поведение переменной NUMERIC и ее диапазон:

 DECLARE @sample NUMERIC(5,2)
SET @sample = 100. 554 // без округления, так как лишняя цифра меньше 5
ВЫБЕРИТЕ @sample КАК Результат
Результат
100,55
DECLARE @sample NUMERIC(5,2)
SET @sample = 100.555 // произойдет округление
ВЫБЕРИТЕ @sample КАК Результат
Результат
100,56
DECLARE @sample NUMERIC(5,2)
SET @sample = 100,55 // округления нет, так как значение не соответствует заданной точности
ВЫБЕРИТЕ @sample КАК Результат
Результат
100,55
DECLARE @sample NUMERIC(5,2)
SET @sample = 100,999 // округление до ближайшего значения
ВЫБЕРИТЕ @sample КАК Результат
Результат
101.00
DECLARE @sample NUMERIC(5,2)
УСТАНОВИТЬ @образец = 999.999 // ошибка, так как после округления значение будет
                      // вне диапазона для определенного числового типа
ВЫБЕРИТЕ @sample КАК Результат
Результат
Ошибка арифметического переполнения при преобразовании числового типа данных в числовой. 


Это все о «Ошибка арифметического переполнения при преобразовании числового типа данных в числовой в SQL Server» . Вы можете видеть, что причиной ошибки обычно является значение вне допустимого диапазона для определенного типа NUMERIC.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *