Bigint

Date/Time типы данных

Ниже приведены типы данных дата / время в MySQL:

Синтаксис Максимальный размер Пояснение
DATE Значения варьируются от ‘1000-01-01’ до ‘9999-12-31’. Отображается как ‘YYYY-MM-DD’.
DATETIME Значения варьируются от ‘1000-01-01 00:00:00’ до ‘9999-12-31 23:59:59’. Отображается как ‘YYYY-MM-DD HH:MM:SS’.
TIMESTAMP(m) Значения варьируются от ‘1970-01-01 00:00:01’ UTC до ‘2038-01-19 03:14:07’ UTC. Отображается как ‘YYYY-MM-DD HH:MM:SS’.
TIME Значения варьируются от ‘-838: 59: 59’ до ‘838: 59: 59’. Отображается как ‘HH:MM:SS.
YEAR Значение года как 2 цифры или 4 цифры. Значение по умолчанию — 4 цифры.

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

Тип Описание
TINYINT(size) От -128 до 127. От 0 до 255 UNSIGNED *. Максимальное количество цифр может быть указано в круглых скобках
SMALLINT(size) -32768 до 32767 нормально. 0 до 65535 UNSIGNED*. Максимальное количество цифр может быть указано в скобках
MEDIUMINT(size) -8388608 до 8388607 normal. 0 до 16777215 UNSIGNED*. Максимальное количество цифр может быть указано в скобках
INT(size) -2147483648 до 2147483647 normal. 0 до 4294967295 UNSIGNED*. Максимальное количество цифр может быть указано в скобках
BIGINT(size) -9223372036854775808 до 9223372036854775807 normal. 0 до 18446744073709551615 UNSIGNED *. Максимальное количество цифр может быть указано в скобках
FLOAT(size,d) Небольшое число с плавающей запятой. Максимальное количество цифр может быть указано в параметре размера. Максимальное количество цифр справа от десятичной точки указано в параметре d
DOUBLE(size,d) Большое число с плавающей запятой. Максимальное количество цифр может быть указано в параметре размера. Максимальное количество цифр справа от десятичной точки указано в параметре d
DECIMAL(size,d) DOUBLE хранится как строка, позволяющая фиксированную десятичную точку. Максимальное количество цифр может быть указано в параметре размера. Максимальное количество цифр справа от десятичной точки указано в параметре d

UNSIGNED — дополнительный параметр целочисленного типа. Обычно целое число переходит от отрицательного к положительному. Добавление атрибута UNSIGNED будет перемещать этот диапазон вверх так, чтобы он начинался с нуля вместо отрицательного числа.

Пример — использование условия IN с оператором NOT

Наконец, давайте посмотрим, как использовать условие IN с оператором NOT. Оператор NOT используется для отмены условия. Когда мы используем оператор NOT с условием IN, мы создаем условие NOT IN. Это проверяет, нет ли выражения в списке.

В этом примере у нас есть таблица products со следующими данными:

product_id product_name category_id
1 Pear 50
2 Banana 50
3 Orange 50
4 Apple 50
5 Bread 75
6 Sliced Ham 25
7 Kleenex NULL

Введите следующий SQL оператор:

PgSQL

SELECT *
FROM products
WHERE product_name NOT IN (‘Pear’, ‘Banana’, ‘Bread’);

1
2
3

SELECT*

FROMproducts

WHEREproduct_nameNOT IN(‘Pear’,’Banana’,’Bread’);

Будет выбрано 4 записи. Вот результаты, которые вы получите:

product_id product_name category_id
3 Orange 50
4 Apple 50
6 Sliced Ham 25
7 Kleenex NULL

В этом примере будут возвращены все строки из таблицы products, где product_name не является Pear, Banana или Bread. Иногда более эффективно перечислять значения, которые вы не хотите, в отличие от значений, которые вы хотите.
Это эквивалентно следующему оператору SQL:

PgSQL

SELECT *
FROM products
WHERE product_name <> ‘Pear’
AND product_name <> ‘Banana’
AND product_name <> ‘Bread’;

1
2
3
4
5

SELECT*

FROMproducts

WHEREproduct_name<>’Pear’

ANDproduct_name<>’Banana’

ANDproduct_name<>’Bread’;

Как видите, эквивалентный оператор записывается с использованием условий AND вместо условий OR, поскольку условие IN отменяется.

Соответствие стандартам ANSI и ISO 8601ANSI and ISO 8601 compliance

Значение date соответствует стандартному определению ANSI SQL для григорианского календаря: «Замечание 85 — данные типа Datetime позволяют хранить даты григорианского календаря в виде чисел диапазона от 0001-01-01 CE до 9999–12–31 CE».date complies with the ANSI SQL standard definition for the Gregorian calendar: «NOTE 85 — Datetime data types will allow dates in the Gregorian format to be stored in the date range 0001-01-01 CE through 9999-12-31 CE.»

Формат строковых литералов по умолчанию, используемый для клиентов низкого уровня, соответствует стандарту SQL, в котором он определен как ГГГГ-ММ-ДД.The default string literal format, which is used for down-level clients, complies with the SQL standard form that is defined as YYYY-MM-DD. Данный формат аналогичен определению даты в стандарте ISO 8601.This format is the same as the ISO 8601 definition for DATE.

Примечание

Для Informatica диапазон ограничен интервалом от 1582-10-15 (15 октября 1582 г.) до 9999-12-31 (31 декабря 9999  г.).For Informatica, the range is limited to 1582-10-15 (October 15, 1582 CE) to 9999-12-31 (December 31, 9999 CE).

Типы данных SQL Server

String types:

Тип данных Описание Место хранения
char(n) Фиксированная ширина строка символов. Максимум 8000 символов Определяется ширина
varchar(n) Переменная строка ширина символа. Максимум 8000 символов 2 байта + количество символов
varchar(max) Переменная строка ширина символа. Максимум 1073741824 символов 2 байта + количество символов
text Переменная строка ширина символа. Максимальное 2GB текстовых данных 4 байта + количество символов
nchar Фиксированная ширина строки Unicode. Максимум 4000 символов Определяется ширина х 2
nvarchar Переменная строка ширина Unicode. Максимум 4000 символов
nvarchar(max) Переменная строка ширина Unicode. Максимальное количество символов 536,870,912
ntext Переменная строка ширина Unicode. Максимальное 2GB текстовых данных
bit Позволяет 0, 1 или NULL
binary(n) Фиксированная ширина двоичная строка. Максимум 8000 байтов
varbinary Переменная ширина двоичная строка. Максимум 8000 байтов
varbinary(max) Переменная ширина двоичная строка. Максимальная 2GB
image Переменная ширина двоичная строка. Максимальная 2GB

Number types:

Тип данных Описание Место хранения
tinyint Позволяет целые числа от 0 до 255 1 байт
smallint Позволяет целые числа между 32768 и 32767 2 байта
int Позволяет целые числа между -2147483648 и 2147483647 4 байта
bigint Позволяет целые числа между -9,223,372,036,854,775,808 и 9,223,372,036,854,775,807 8 байт
decimal(p,s) Фиксированная точность и масштаб числа.

Позволяет числа от -10 ^ 38 + 1 до 10 ^ 38 -1.

Параметр р указывает максимальное общее количество цифр, которые могут быть сохранены (как слева и справа от десятичной точки). р должно иметь значение от 1 до 38. По умолчанию 18.

Параметр s указывает максимальное количество цифр, сохраненных справа от десятичной точки. s должен иметь значение от 0 до р. Значение по умолчанию равно 0

5-17 байт
numeric(p,s) Фиксированная точность и масштаб числа.

Позволяет числа от -10 ^ 38 + 1 до 10 ^ 38 -1.

Параметр р указывает максимальное общее количество цифр, которые могут быть сохранены (как слева и справа от десятичной точки). р должно иметь значение от 1 до 38. По умолчанию 18.

Параметр s указывает максимальное количество цифр, сохраненных справа от десятичной точки. s должен иметь значение от 0 до р. Значение по умолчанию равно 0

5-17 байт
smallmoney Денежные данные -214,748.3648 к 214,748.3647 4 байта
money Денежные данные -922,337,203,685,477.5808 к 922,337,203,685,477.5807 8 байт
float(n) Плавающие данные точности число от -1.79E + 308 до 1.79E + 308.

П параметр указывает, следует ли поле держать 4 или 8 байт. с плавающей точкой (24) имеет поле 4 байта и с плавающей точкой (53) имеет поле 8 байт. По умолчанию значение п 53.

4 или 8 байт
real Плавающие данные точности число от -3.40E + 38 до 3.40E + 38 4 байта

Date types:

Тип данных Описание Место хранения
datetime С 1 января 1753 года по 31 декабря 9999 с точностью 3,33 миллисекунды 8 байт
datetime2 С 1 января 0001 года по 31 декабря 9999 с точностью до 100 наносекунд 6-8 байтов
smalldatetime С 1 января 1900 года по 6 июня 2079 с точностью до 1 минуты 4 байта
date Хранить только дату. С 1 января 0001 года по 31 декабря 9999 3 байта
time Хранить время только с точностью до 100 наносекунд 3-5 байтов
datetimeoffset То же самое, как datetime2 с добавлением смещение часового пояса 8-10 байт
timestamp Сохраняет уникальный номер, который обновляется каждый раз, когда строка получает созданный или измененный. Значение временной метки основана на внутренние часы и не соответствует реальному времени. Каждая таблица может иметь только одну переменную временную метку

Other data types:

Тип данных Описание
sql_variant Сохраняет до 8000 байт данных различных типов данных, за исключением текста, NTEXT и временную метку
uniqueidentifier Магазины глобально уникальный идентификатор (GUID)
xml Магазины XML-данных в формате. Максимальная 2GB
cursor Сохраняет ссылку на курсор, используемый для операций с базами данных
table Сохраняет результат набора для последующей обработки

❮ Предыдущая Следующая Глава ❯

Временные типы

  • DATE — предназначен для хранения даты. Формат: год «YYYY», разделитель, месяц «ММ», разделитель, день «DD». В качестве разделителя может выступать не только дефис «-», но и любой символ отличный от цифры.
  • DATETIME — предназначен для хранения и даты и времени суток. Позволяет хранить значения в большом диапазоне, с 1001 до 9999 года, с точностью в одну секунду. Дата и время упаковываются в целое число в формате YYYYMMDDHHMMSS независимо от часового пояса. Под значение отводится восемь байт. По умолчанию MySQL показывает данные типа DATETIME в точно определенном, допускающем сортировку формате: 2008-01-16 22:37:08. Этот способ представления даты и времени согласуется со стандартом ANSI.
  • TIME — предназначен для хранения времени суток. Значение вводится и хранится в привычном формате: hh:mm:ss, где hh — часы, mm — минуты, ss — секунды. В качестве разделителя может выступать любой символ отличный от цифры.
  • TIMESTAMP — предназначен для хранения даты и времени суток в виде количества секунд, прошедших с полуночи 1 января 1970 года по гринвичскому времени (начало эпохи UNIX). С точки зрения занимаемого места на диске он гораздо эффективнее, чем DATETIME. Для хранения типа TIMESTAMP используется только четыре байта, поэтому он позволяет представить значительно меньший диапазон дат, чем тип DATETIME: с 1970 года до некоторой даты в 2038 году. В MySQL имеют ся функции FROM_UNIXTIME() и UNIX_TIMESTAMP(), служащие для преобразования временной метки UNIX в дату и наоборот. Столбцы типа TIMESTAMP по умолчанию создаются в режиме NOT NULL, если вы не указали значение для столбца, MySQL вставляет в первый столбец типа TIMESTAMP текущее время. Тип TIMESTAMP имеет также специальные свойства, которых нет у типа DATETIME.
  • YEAR(N) — предназначен для хранения года. Число N задает формат года: YEAR (2) — 70, а YEAR (4) — 1970. По умолчанию, N = 4.
Типы данных Формат
DATETIME ‘0000-00-00 00:00:00’
DATE ‘0000-00-00’
TIMESTAMP 00000000000000 (длина зависит от количества выводимых символов)
TIME ‘00:00:00’
YEAR 0000

Дата и время — см. такжеDate and time-related topics

РазделTopic ОписаниеDescription
FORMATFORMAT Возвращает значение в указанных формате и культуре (не обязательно).Returns a value formatted with the specified format and optional culture. Для выполнения форматирования значения даты, времени и чисел с учетом локали в виде строк используется функция FORMAT.Use the FORMAT function for locale-aware formatting of date/time and number values as strings.
Функции CAST и CONVERT (Transact-SQL)CAST and CONVERT (Transact-SQL) Предоставляет сведения о преобразовании значений даты и времени в строковые литералы и обратно, а также в другие форматы даты и времени.Provides information about the conversion of date and time values to and from string literals, and other date and time formats.
Написание инструкций Transact-SQL, адаптированных к международному использованиюWrite International Transact-SQL Statements Предоставляет рекомендации относительно переносимости баз данных и приложений баз данных, использующих инструкции Transact-SQLTransact-SQL, с одного языка на другой или в многоязычную среду.Provides guidelines for portability of databases and database applications that use Transact-SQLTransact-SQL statements from one language to another, or that support multiple languages.
Скалярные функции ODBC (Transact-SQL)ODBC Scalar Functions (Transact-SQL) Предоставляет сведения о скалярных функциях ODBC, которые могут использоваться в инструкциях Transact-SQLTransact-SQL.Provides information about ODBC scalar functions available for use in Transact-SQLTransact-SQL statements. К ним относятся функции даты и времени ODBC.This includes ODBC date and time functions.
AT TIME ZONE (Transact-SQL)AT TIME ZONE (Transact-SQL) Обеспечивает преобразование часовых поясов.Provides time zone conversion.

Типы данных Microsoft Access

Тип данных Описание Хранения
Text Используется для текста или комбинаций текста и чисел. 255 символов максимум  
Memo MEMO используется для больших объемов текста. Хранит до 65 536 символов. Примечание: Поле MEMO нельзя сортировать. Тем не менее, они доступны для поиска  
Byte Позволяет целые числа от 0 до 255 1 byte
Integer Позволяет целые числа между-32 768 и 32 767 2 bytes
Long Позволяет целые числа между-2 147 483 648 и 2 147 483 647 4 bytes
Single Одинарная точность с плавающей запятой. Будет обрабатывать большинство десятичных знаков 4 bytes
Double Двойная точность с плавающей запятой. Будет обрабатывать большинство десятичных знаков 8 bytes
Currency Использовать для валюты. Вмещает до 15 цифр целых долларов, плюс 4 десятичных знака. Совет: Вы можете выбрать валюту страны для использования 8 bytes
AutoNumber Поля автонумерации автоматически дают каждой записи свой номер, обычно начиная с 1 4 bytes
Date/Time Использовать для дат и времени 8 bytes
Yes/No Логическое поле может отображаться как Yes/No, true/false или вкл/выкл. В коде используйте Константы true и false (эквивалентно-1 и 0). Примечание: Значения NULL не разрешены в полях «да/нет» 1 bit
Ole Object Может хранить изображения, аудио, видео, или другие BLOB-объекты (двоичные больших объектов) up to 1GB
Hyperlink Содержать ссылки на другие файлы, включая веб-страницы  
Lookup Wizard Позволяет ввести список опций, которые затем можно выбрать из раскрывающегося списка 4 bytes

❮ Назад
Дальше ❯

SQL Server, SSIS и Biml типы данных

Таблица ниже является упрощенной схемой связи между типами данныхSQL Server, SSIS и Biml.
Таблица не включает все возможные комбинации и все виды типов данных, но полезна как быстрая ссылка при разработке и изучении Biml.

SQL Server SSIS Variables SSIS Pipeline Buffer OLE DB ADO.NET Biml
bigint Int64 DT_I8 LARGE_INTEGER Int64 Int64
binary Object DT_BYTES Binary Binary
bit Boolean DT_BOOL VARIANT_BOOL Boolean Boolean
char String DT_STR VARCHAR StringFixedLength AnsiStringFixedLength
date Object DT_DBDATE DBDATE Date Date
datetime DateTime DT_DBTIMESTAMP DATE DateTime DateTime
datetime2 Object DT_DBTIMESTAMP2 DBTIME2 DateTime2 DateTime2
datetimeoffset Object DT_DBTIMESTAMPOFFSET DBTIMESTAMPOFFSET DateTimeOffset DateTimeOffset
decimal Decimal DT_NUMERIC NUMERIC Decimal Decimal
float Double DT_R8 FLOAT Double Double
geography DT_IMAGE Object Object
geometry DT_IMAGE Object Object
hierarchyid DT_BYTES Object Object
image (*) Object DT_IMAGE Binary Binary
int Int32 DT_I4 LONG Int32 Int32
money Object DT_CY, DT_NUMERIC CURRENCY Currency Currency
nchar String DT_WSTR NVARCHAR StringFixedLength StringFixedLength
ntext (*) String DT_NTEXT String String
numeric Decimal DT_NUMERIC NUMERIC Decimal Decimal
nvarchar String DT_WSTR NVARCHAR String String
nvarchar(max) Object DT_NTEXT String
real Single DT_R4 FLOAT, DOUBLE Single Single
rowversion Object DT_BYTES Binary Binary
smalldatetime DateTime DT_DBTIMESTAMP DATE DateTime DateTime
smallint Int16 DT_I2 SHORT Int16 Int16
smallmoney Object DT_CY, DT_NUMERIC CURRENCY Currency Currency
sql_variant Object DT_WSTR, DT_NTEXT Object Object
table Object
text (*) Object DT_TEXT AnsiString
time Object DT_DBTIME2 DBTIME2 Time Time
timestamp (*) Object DT_BYTES Binary Binary
tinyint Byte DT_UI1 BYTE Byte Byte
uniqueidentifier String, Object DT_GUID GUID Guid Guid
varbinary Object DT_BYTES Binary Binary
varbinary(max) Object DT_IMAGE Binary Binary
varchar String DT_STR VARCHAR String AnsiString
varchar(max) Object DT_TEXT AnsiString
xml Object DT_NTEXT Xml

(* Данные типы данных будут удалены в будущих версиях SQL Server.
Избегайте использование этих типов данных в новых проектах и, по возможности, измените их в текущих проектах.)

АргументыArguments

nchar nchar Строковые данные фиксированного размера.Fixed-size string data. n определяет размер строки в парах байтов и должно иметь значение от 1 до 4000.n defines the string size in byte-pairs and must be a value from 1 through 4,000. Размер хранилища — дважды n байт.The storage size is two times n bytes. В случае с кодировкой размер при хранении определяется как дважды n байт, а количество хранимых символов равно n.For encoding, the storage size is two times n bytes and the number of characters that can be stored is also n. Для кодировки UTF-16 размер при хранении также равен дважды n байт, но количество хранимых символов может быть меньше n, так как дополнительные символы используют две пары байтов (также называются ).For UTF-16 encoding, the storage size is still two times n bytes but the number of characters that can be stored may be smaller than n because Supplementary Characters use two byte-pairs (also called ). Синонимами типа nchar по стандарту ISO являются типы national char и national character.The ISO synonyms for nchar are national char and national character.

nvarchar nvarchar Строковые данные переменного размера.Variable-size string data. n определяет размер строки в парах байтов и может иметь значение от 1 до 4000.n defines the string size in byte-pairs and can be a value from 1 through 4,000. Значение max указывает, что максимальный размер при хранении составляет 2^30-1 символов (2 ГБ).max indicates that the maximum storage size is 2^30-1 characters (2 GB). Размер при хранении определяется как дважды n байт + 2 байта.The storage size is two times n bytes + 2 bytes. В случае с кодировкой размер при хранении определяется как дважды n байт + 2 байта, а количество хранимых символов равно n.For encoding, the storage size is two times n bytes + 2 bytes and the number of characters that can be stored is also n. Для кодировки UTF-16 размер при хранении также равен дважды n байт + 2 байта, но количество хранимых символов может быть меньше n, так как дополнительные символы используют две пары байтов (также называются ).For UTF-16 encoding, the storage size is still two times n bytes + 2 bytes but the number of characters that can be stored may be smaller than n because Supplementary Characters use two byte-pairs (also called ). Синонимами типа nvarchar по стандарту ISO являются типы national char varying и national character varying.The ISO synonyms for nvarchar are national char varying and national character varying.

SQL Server Data Types

String Data Types

Data type Description Max size Storage
char(n) Fixed width character string 8,000 characters Defined width
varchar(n) Variable width character string 8,000 characters 2 bytes + number of chars
varchar(max) Variable width character string 1,073,741,824 characters 2 bytes + number of chars
text Variable width character string 2GB of text data 4 bytes + number of chars
nchar Fixed width Unicode string 4,000 characters Defined width x 2
nvarchar Variable width Unicode string 4,000 characters  
nvarchar(max) Variable width Unicode string 536,870,912 characters  
ntext Variable width Unicode string 2GB of text data  
binary(n) Fixed width binary string 8,000 bytes  
varbinary Variable width binary string 8,000 bytes  
varbinary(max) Variable width binary string 2GB  
image Variable width binary string 2GB  

Numeric Data Types

Data type Description Storage
bit Integer that can be 0, 1, or NULL  
tinyint Allows whole numbers from 0 to 255 1 byte
smallint Allows whole numbers between -32,768 and 32,767 2 bytes
int Allows whole numbers between -2,147,483,648 and 2,147,483,647 4 bytes
bigint Allows whole numbers between -9,223,372,036,854,775,808 and 9,223,372,036,854,775,807 8 bytes
decimal(p,s) Fixed precision and scale numbers.

Allows numbers from -10^38 +1 to 10^38 –1.

The p parameter indicates the maximum total number of digits that can be stored (both to the left and to the right of the decimal point). p must be a value from 1 to 38. Default is 18.

The s parameter indicates the maximum number of digits stored to the right of the decimal point. s must be a value from 0 to p. Default value is 0

5-17 bytes
numeric(p,s) Fixed precision and scale numbers.

Allows numbers from -10^38 +1 to 10^38 –1.

The p parameter indicates the maximum total number of digits that can be stored (both to the left and to the right of the decimal point). p must be a value from 1 to 38. Default is 18.

The s parameter indicates the maximum number of digits stored to the right of the decimal point. s must be a value from 0 to p. Default value is 0

5-17 bytes
smallmoney Monetary data from -214,748.3648 to 214,748.3647 4 bytes
money Monetary data from -922,337,203,685,477.5808 to 922,337,203,685,477.5807 8 bytes
float(n) Floating precision number data from -1.79E + 308 to 1.79E + 308.

The n parameter indicates whether the field should hold 4 or 8 bytes. float(24) holds a 4-byte field and float(53) holds an 8-byte field. Default value of n is 53.

4 or 8 bytes
real Floating precision number data from -3.40E + 38 to 3.40E + 38 4 bytes

Date and Time Data Types

Data type Description Storage
datetime From January 1, 1753 to December 31, 9999 with an accuracy of 3.33 milliseconds 8 bytes
datetime2 From January 1, 0001 to December 31, 9999 with an accuracy of 100 nanoseconds 6-8 bytes
smalldatetime From January 1, 1900 to June 6, 2079 with an accuracy of 1 minute 4 bytes
date Store a date only. From January 1, 0001 to December 31, 9999 3 bytes
time Store a time only to an accuracy of 100 nanoseconds 3-5 bytes
datetimeoffset The same as datetime2 with the addition of a time zone offset 8-10 bytes
timestamp Stores a unique number that gets updated every time a row gets created or modified. The timestamp value is based upon an internal clock and does not correspond to real time. Each table may have only one timestamp variable  

Other Data Types

Data type Description
sql_variant Stores up to 8,000 bytes of data of various data types, except text, ntext, and timestamp
uniqueidentifier Stores a globally unique identifier (GUID)
xml Stores XML formatted data. Maximum 2GB
cursor Stores a reference to a cursor used for database operations
table Stores a result-set for later processing

Приоритет типов данных (Transact-SQL)

Если оператор связывает два выражения различных типов данных, то по правилам приоритета типов данных определяется, какой тип данных имеет меньший приоритет и будет преобразован в тип данных с большим приоритетом.
Если неявное преобразование не поддерживается, возвращается ошибка.
Если оба операнда выражения имеют одинаковый тип данных, результат операции будет иметь тот же тип данных.

В SQL Server используется следующий приоритет типов данных:

  1. sql_variant
  2. xml
  3. datetimeoffset
  4. datetime2
  5. datetime
  6. smalldatetime
  7. date
  8. time
  9. float
  10. real
  11. decimal
  12. money
  13. smallmoney
  14. bigint
  15. int
  16. smallint
  17. tinyint
  18. bit
  19. ntext
  20. text
  21. image
  22. timestamp
  23. uniqueidentifier
  24. nvarchar (including nvarchar(max) )
  25. nchar
  26. varchar (including varchar(max) )
  27. char
  28. varbinary (including varbinary(max) )
  29. binary (lowest)

RemarksRemarks

sql_variant может использоваться в столбцах, параметрах, переменных и значениях, возвращаемых определяемыми пользователем функциями.sql_variant can be used in columns, parameters, variables, and the return values of user-defined functions. sql_variant позволяет этим объектам баз данных поддерживать значения других типов данных.sql_variant enables these database objects to support values of other data types.

Столбец типа sql_variant может содержать строки различных типов данных.A column of type sql_variant may contain rows of different data types. Например, в столбце, определенном как sql_variant, могут храниться значения int, binary и char.For example, a column defined as sql_variant can store int, binary, and char values.

Максимальная длина значения типа данных sql_variant составляет 8016 байт.sql_variant can have a maximum length of 8016 bytes. Сюда входят сведения о базовом типе и значение базового типа.This includes both the base type information and the base type value. Максимальная длина значения соответствующего базового типа составляет 8 000 байт.The maximum length of the actual base type value is 8,000 bytes.

Перед тем как задействовать тип данных sql_variant в таких операциях, как сложение и вычитание, его нужно привести к значению базового типа данных.A sql_variant data type must first be cast to its base data type value before participating in operations such as addition and subtraction.

Типу данных sql_variant может быть присвоено значение по умолчанию.sql_variant can be assigned a default value. Этот тип данных в качестве значения может содержать значение NULL, однако значению NULL не будет соответствовать базовый тип.This data type can also have NULL as its underlying value, but the NULL values will not have an associated base type. Кроме того, тип данных sql_variant не может в качестве базового иметь другой тип данных sql_variant.Also, sql_variant cannot have another sql_variant as its base type.

Уникальный, первичный или внешний ключ может содержать столбцы типа sql_variant, но общая длина значений данных, составляющих ключ определенной строки, не должна превышать максимальную длину индекса.A unique, primary, or foreign key may include columns of type sql_variant, but the total length of the data values that make up the key of a specific row should not be more than the maximum length of an index. Эта длина составляет 900 байт.This is 900 bytes.

Таблица может иметь любое количество столбцов типа sql_variant.A table can have any number of sql_variant columns.

Тип sql_variant нельзя использовать в инструкциях CONTAINSTABLE и FREETEXTTABLE.sql_variant cannot be used in CONTAINSTABLE and FREETEXTTABLE.

Протокол ODBC поддерживает тип sql_variant не полностью.ODBC does not fully support sql_variant. Поэтому столбцы типа sql_variant, запрашиваемые через поставщик Microsoft OLE DB для ODBC (MSDASQL), возвращаются в виде двоичных данных.Therefore, queries of sql_variant columns are returned as binary data when you use Microsoft OLE DB Provider for ODBC (MSDASQL). Например, столбец типа sql_variant, содержащий строку «PS2091», возвращается в виде 0x505332303931.For example, a sql_variant column that contains the character string data ‘PS2091’ is returned as 0x505332303931.

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

Как и следовало ожидать по их названию, числовые типы данных применяются для представления чисел. Эти типы и их краткое описание приводятся в таблице ниже:

Числовые типы данных T-SQL
Тип данных Описание
INTEGER

Представляет целочисленные значения длиной в 4 байта в диапазоне от -232 до 232 — 1. INT — сокращенная форма от INTEGER.

SMALLINT

Представляет целочисленные значения длиной в 2 байта в диапазоне от -32 768 до 32 767

TINYINT

Представляет целочисленные значения длиной в 1 байт в диапазоне от 0 до 255

BIGINT

Представляет целочисленные значения длиной в 8 байт в диапазоне от -263 до 263 — 1

DECIMAL(p,)

Представляет значения с фиксированной точкой. Аргумент p (precision — точность) указывает общее количество разрядов, а аргумент s (scale — степень) — количество разрядов справа от полагаемой десятичной точки. В зависимости от значения аргумента p, значения decimal сохраняются в 5 до 17 байтах. DEC — сокращенная форма от DECIMAL.

NUMERIC(p,)

Синоним DECIMAL.

REAL

Применяется для представления значений с плавающей точкой. Диапазон положительных значений простирается приблизительно от 2,23E -308 до -1,18E -38. Также может быть представлено и нулевое значение.

FLOAT

Подобно типу REAL, представляет значения с плавающей точкой . Аргумент p определяет точность. При значении p < 25 представляемые значения имеют одинарную точность (требуют 4 байта для хранения), а при значении p >= 25 — двойную точность (требуют 8 байтов для хранения).

MONEY

Используется для представления денежных значений. Значения типа MONEY соответствуют 8-байтовым значениям типа DECIMAL, округленным до четырех разрядов после десятичной точки

SMALLMONEY

Представляет такие же значения, что и тип MONEY, но длиной в 4 байта

Пример — использование условия IN с числовыми значениями

Далее давайте посмотрим, как использовать условие IN с числовыми значениями.

В этом примере у нас есть таблица customer и следующими данными:

customer_id first_name last_name favorite_website
4000 Justin Bieber google.com
5000 Selena Gomez bing.com
6000  Mila Kunis yahoo.com
7000 Tom Cruise oracle.com
8000 Johnny Depp NULL
9000 Russell Crowe google.com

Введите следующий SQL оператор:

PgSQL

SELECT *
FROM customers
WHERE customer_id IN (5000, 7000, 8000, 9000);

1
2
3

SELECT*

FROMcustomers

WHEREcustomer_idIN(5000,7000,8000,9000);

Будет выбрано 4 записи. Вот результаты, которые вы должны получить:

customer_id first_name last_name favorite_website
5000 Selena Gomez bing.com
7000 Tom Cruise oracle.com
8000 Johnny Depp NULL
9000 Russell Crowe google.com

В этом примере будут возвращены все записи из таблицы customers, где customer_id равен 5000, 7000, 8000 или 9000.

Это эквивалентно следующему оператору SQL:

PgSQL

SELECT *
FROM customers
WHERE customer_id = 5000
OR customer_id = 7000
OR customer_id = 8000
OR customer_id = 9000;

1
2
3
4
5
6

SELECT*

FROMcustomers

WHEREcustomer_id=5000

ORcustomer_id=7000

ORcustomer_id=8000

ORcustomer_id=9000;

Округление типа данных datetime до долей секундыRounding of datetime Fractional Second Precision

Значения типа datetime округляются в большую сторону до 0,000, 0,003 или 0,007 секунды, как показано в таблице, представленной ниже.datetime values are rounded to increments of .000, .003, or .007 seconds, as shown in the following table.

Указанное пользователем значениеUser-specified value Значение, хранимое системойSystem stored value
01/01/98 23:59:59.99901/01/98 23:59:59.999 1998-01-02 00:00:00.0001998-01-02 00:00:00.000
01/01/98 23:59:59.99501/01/98 23:59:59.99501/01/98 23:59:59.99601/01/98 23:59:59.99601/01/98 23:59:59.99701/01/98 23:59:59.99701/01/98 23:59:59.99801/01/98 23:59:59.998 1998-01-01 23:59:59.9971998-01-01 23:59:59.997
01/01/98 23:59:59.99201/01/98 23:59:59.99201/01/98 23:59:59.99301/01/98 23:59:59.99301/01/98 23:59:59.99401/01/98 23:59:59.994 1998-01-01 23:59:59.9931998-01-01 23:59:59.993
01/01/98 23:59:59.99001/01/98 23:59:59.99001/01/98 23:59:59.99101/01/98 23:59:59.991 1998-01-01 23:59:59.9901998-01-01 23:59:59.990

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

Ниже приведены числовые типы данных в SQL Server (Transact-SQL):

Синтаксис типа данных Максимальный размер Пояснение
BIT Целое число, которое может быть 0, 1 или NULL.
TINYINT От 0 до 255
SMALLINT -32768 до 32767
INT -2,147,483,648 до 2,147,483,647
BIGINT -9,223,372,036,854,775,808 — 9,223,372,036,854,775,807
DECIMAL(m,d) m по умолчанию — 18, если не указано.
d по умолчанию равно 0, если не указано.
Где m — это суммарное количество цифр, а d — количество цифр после десятичного знака.
DEC(m,d) m по умолчанию — 18, если не указано.
d по умолчанию равно 0, если не указано.
Где m — это суммарное количество цифр, а d — количество цифр после десятичного знака.
Это синоним типа DECIMAL.
NUMERIC(m,d) m по умолчанию — 18, если не указано. d по умолчанию равно 0, если не указано. Где m — это суммарные цифры, а d — количество цифр после десятичного знака.
Это синоним типа DECIMAL.
FLOAT(n) Число с плавающей точкой. n по умолчанию — 53, если не указано. Где n — количество бит, которое должно храниться в научной нотации.
REAL Эквивалент FLOAT (24)
SMALLMONEY — 214,748.3648 до 214,748.3647
MONEY -922,337,203,685,477,5808 до 922,337,203,685,477.5807
Добавить комментарий

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

Adblock
detector