Типы данных (transact-sql)data types (transact-sql)

Термины и понятия, связанные с расширенными событиямиTerms and concepts in extended events

В приведенной ниже таблице перечислены термины, используемые в связи с расширенными событиями, и объясняется их смысл.The following table lists the terms used for extended events, and describes their meanings.

ТерминTerm ОписаниеDescription
сеанс событийevent session Целью является конструкция, основанная на одном или нескольких событиях, а также вспомогательные элементы, такие как действия.A construct centered around one or more events, plus supporting items like actions are targets. Инструкция CREATE EVENT SESSION создает каждый сеанс событий.The CREATE EVENT SESSION statement constructs each event session. С помощью инструкции ALTER можно по желанию запускать и останавливать сеансы.You can ALTER an event session to start and stop it at will. Сеанс событий часто называется просто сеансом, если из контекста понятно, что имеется в виду именно сеанс событий.An event session is sometimes referred to as just a session, when the context clarifies it means event session. Более подробные сведения о сеансах событий см. в статье Сеансы расширенных событий SQL Server.Further details about event sessions are described in: SQL Server Extended Events Sessions.
eventevent Определенное событие в системе, наступление которого отслеживается активным сеансом событий.A specific occurrence in the system that is watched for by an active event session. Например, событие sql_statement_completed представляет момент завершения какой-либо инструкции T-SQL.For example, the sql_statement_completed event represents the moment that any given T-SQL statement completes. Событие может сообщать различные данные, например длительность.The event can report its duration and other data.
targettarget Элемент, который получает выходные данные из регистрируемого события.A item that receives the output data from a captured event. Служит для вывода данных.The target displays the data to you. Примерами могут служить event_file и его облегченная версия ring_buffer, хранимая в памяти.Examples include the event_file, and its handy light-weight cousin the memory ring_buffer. Более сложная целевая гистограмма выполняет ряд задач по обработке данных перед их выводом.The fancier histogram target performs some processing of your data before displaying it. Любой целевой объект можно использовать для любого сеанса событий.Any target can be used for any event session. Дополнительные сведения см. в разделе Целевые объекты для расширенных событий в SQL Server.For details, see Targets for Extended Events in SQL Server.
actionaction Поле, известное событию.A field known to the event. Данные из этого поля отправляются в целевой объект.Data from the field is sent to the target. Поле действия тесно связано с фильтром предиката.The action field is closely related to the predicate filter.
фильтром предикатаpredicate filter Проверка данных в поле события, благодаря которой только нужное подмножество экземпляров события отправляется целевому объекту.A test of data in an event field, used so that only an interesting subset of event occurrences are sent to the target. Например, фильтр может включать только те экземпляры события sql_statement_completed , в которых инструкция T-SQL содержит строку HAVING.For example, a filter could include only those sql_statement_completed event occurrences where the T-SQL statement contained the string HAVING.
Пакетpackage Квалификатор имени, добавляемый к каждому элементу в наборе элементов, связанном с пакетом событий.A name qualifier attached to each item in a set of items that centers around a core of events. Например, пакет событий может включать события, связанные с текстом T-SQL.For example, a package might have events about T-SQL text. Одно из событий может быть связано с кодом T-SQL в пакете, отделенном командой GO.One event could be about all the T-SQL in a GO-delimited batch. А другое более частное событие может быть связано с отдельными инструкциями T-SQL.Meanwhile another narrower event is about individual T-SQL statements. Кроме того, для каждой инструкции T-SQL есть события начала и завершения.Further, for any one T-SQL statement, there is are start and completed events. Соответствующие событиям поля также содержатся в пакете с событиями.Fields appropriate for the events are also in the package with the events. Большинство целевых объектов находятся в пакете package0 и используются с событиями из многих других пакетов.Most targets are in package0 and are used with events from many other packages.

Календарные типы данных

Тип данных Объем памяти Диапазон Описание
DATE 3 байта от ‘1000-01-01’ до ‘9999-12-31’ Предназначен для хранения даты. В качестве первого значения указывается год в формате «YYYY», через дефис — месяц в
формате «ММ», а затем день в формате «DD». В качестве разделителя может выступать не только дефис, а любой символ отличный
от цифры.
TIME 3 байта от ‘-838:59:59’ до ‘838:59:59’ Предназначен для хранения времени суток. Значение вводится и хранится в привычном формате — hh:mm:ss, где hh — часы,
mm — минуты, ss — секунды. В качестве разделителя может выступать любой символ отличный от цифры.
DATATIME 8 байт от ‘1000-01-01 00:00:00’ до ‘9999-12-31 23:59:59’ Предназначен для хранения и даты и времени суток. Значение вводится и хранится в формате — YYYY-MM-DD hh:mm:ss.
В качестве разделителей могут выступать любые символы отличные от цифры.
TIMESTAMP 4 байта от ‘1970-01-01 00:00:00’ до ‘2037-12-31 23:59:59’ Предназначен для хранения даты и времени суток в виде количества секунд, прошедших с полуночи 1 января 1970 года
(начало эпохи UNIX).
YEAR (M) 1 байт от 1970 до 2069 для М=2 и от 1901 до 2155 для М=4 Предназначен для хранения года. М — задает формат года. Например, YEAR (2) — 70, а YEAR (4) — 1970. Если параметр М не
указан, то по умолчанию считается, что он равен 4.

Пример — использование условия 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 отменяется.

Значение NULL

Значение null — это специальное значение, которое можно присвоить ячейке таблицы. Это значение обычно применяется, когда информация в ячейке неизвестна или неприменима. Например, если неизвестен номер домашнего телефона служащего компании, рекомендуется присвоить соответствующей ячейке столбца home_telephone значение null.

Если значение любого операнда любого арифметического выражения равно null, значение результата вычисления этого выражения также будет null. Поэтому в унарных арифметических операциях, если значение выражения A равно null, тогда как +A, так и -A возвращает null. В бинарных выражениях, если значение одного или обоих операндов A и B равно null, тогда результат операции сложения, вычитания, умножения, деления и деления по модулю этих операндов также будет null.

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

Значение null должно отличаться от всех других значений. Для числовых типов данных значение 0 и значение null не являются одинаковыми. То же самое относится и к пустой строке и значению null для символьных типов данных.

Значения null можно сохранять в столбце таблицы только в том случае, если это явно разрешено в определении данного столбца. С другой стороны, значения null не разрешаются для столбца, если в его определении явно указано NOT NULL. Если для столбца с типом данных (за исключением типа TIMESTAMP) не указано явно NULL или NOT NULL, то присваиваются следующие значения:

  • NULL, если значение параметра ANSI_NULL_DFLT_ON инструкции SET равно on.

  • NOT NULL, если значение параметра ANSI_NULL_DFLT_OFF инструкции SET равно on.

Если инструкцию set не активировать, то столбец по умолчанию будет содержать значение NOT NULL. (Для столбцов типа TIMESTAMP значения null не разрешаются.)

Тип данных больших объектов

Тип данных LOB (Large OBject — большой объект) используется для хранения объектов данных размером до 2 Гбайт. Такие объекты обычно применяются для хранения больших объемов текстовых данных и для загрузки подключаемых модулей и аудио- и видеофайлов. В языке Transact-SQL поддерживаются следующие типы данных LOB:

  • VARCHAR(MAX);

  • NVARCHAR(MAX);

  • VARBINARY(MAX).

Начиная с версии SQL Server 2005, для обращения к значениям стандартных типов данных и к значениям типов данных LOB применяется одна и та же модель программирования. Иными словами, для работы с объектами LOB можно использовать удобные системные функции и строковые операторы.

В компоненте Database Engine параметр MAX применяется с типами данных VARCHAR, NVARCHAR и VARBINARY для определения значений столбцов переменной длины. Когда вместо явного указания длины значения используется значение длины по умолчанию MAX, система анализирует длину конкретной строки и принимает решение, сохранять ли эту строку как обычное значение или как значение LOB. Параметр MAX указывает, что размер значений столбца может достигать максимального размера LOB данной системы.

Хотя решение о способе хранения объектов LOB принимается системой, настройки по умолчанию можно переопределить, используя системную процедуру sp_tableoption с аргументом LARGE_VALUE_TYPES_OUT_OF_ROW. Если значение этого аргумента равно 1, то данные в столбцах, объявленных с использованием параметра MAX, будут сохраняться отдельно от остальных данных. Если же значение аргумента равно 0, то компонент Database Engine сохраняет все значения размером до 8 060 байт в строке таблицы, как обычные данные, а значения большего размера хранятся вне строки в области хранения объектов LOB.

Начиная с версии SQL Server 2008, для столбцов типа VARBINARY(MAX) можно применять атрибут FILESTREAM, чтобы сохранять данные BLOB (Binary Large OBject — большой двоичный объект) непосредственно в файловой системе NTFS. Основным достоинством этого атрибута является то, что размер соответствующего объекта LOB ограничивается только размером тома файловой системы.

ПримерыExamples

В следующем примере сравниваются результаты приведения строкового типа к каждому из типов данных date и time.The following example compares the results of casting a string to each date and time data type.

Результирующий набор:Here is the result set.

Тип данныхData type Выходные данныеOutput
timetime 12:35:29.12:35:29. 12345671234567
datedate 2007-05-082007-05-08
smalldatetimesmalldatetime 2007-05-08 12:35:002007-05-08 12:35:00
datetimedatetime 2007-05-08 12:35:29.1232007-05-08 12:35:29.123
datetime2datetime2 2007-05-08 12:35:29.12345672007-05-08 12:35:29.1234567
datetimeoffsetdatetimeoffset 2007-05-08 12:35:29.1234567 +12:152007-05-08 12:35:29.1234567 +12:15

Впервые представлено в SQL Server 2008.First introduced in SQL Server 2008.

SQL References

SQL Keywords
ADD
ADD CONSTRAINT
ALTER
ALTER COLUMN
ALTER TABLE
ALL
AND
ANY
AS
ASC
BACKUP DATABASE
BETWEEN
CASE
CHECK
COLUMN
CONSTRAINT
CREATE
CREATE DATABASE
CREATE INDEX
CREATE OR REPLACE VIEW
CREATE TABLE
CREATE PROCEDURE
CREATE UNIQUE INDEX
CREATE VIEW
DATABASE
DEFAULT
DELETE
DESC
DISTINCT
DROP
DROP COLUMN
DROP CONSTRAINT
DROP DATABASE
DROP DEFAULT
DROP INDEX
DROP TABLE
DROP VIEW
EXEC
EXISTS
FOREIGN KEY
FROM
FULL OUTER JOIN
GROUP BY
HAVING
IN
INDEX
INNER JOIN
INSERT INTO
INSERT INTO SELECT
IS NULL
IS NOT NULL
JOIN
LEFT JOIN
LIKE
LIMIT
NOT
NOT NULL
OR
ORDER BY
OUTER JOIN
PRIMARY KEY
PROCEDURE
RIGHT JOIN
ROWNUM
SELECT
SELECT DISTINCT
SELECT INTO
SELECT TOP
SET
TABLE
TOP
TRUNCATE TABLE
UNION
UNION ALL
UNIQUE
UPDATE
VALUES
VIEW
WHERE

MySQL Functions
String Functions
ASCII
CHAR_LENGTH
CHARACTER_LENGTH
CONCAT
CONCAT_WS
FIELD
FIND_IN_SET
FORMAT
INSERT
INSTR
LCASE
LEFT
LENGTH
LOCATE
LOWER
LPAD
LTRIM
MID
POSITION
REPEAT
REPLACE
REVERSE
RIGHT
RPAD
RTRIM
SPACE
STRCMP
SUBSTR
SUBSTRING
SUBSTRING_INDEX
TRIM
UCASE
UPPER

Numeric Functions
ABS
ACOS
ASIN
ATAN
ATAN2
AVG
CEIL
CEILING
COS
COT
COUNT
DEGREES
DIV
EXP
FLOOR
GREATEST
LEAST
LN
LOG
LOG10
LOG2
MAX
MIN
MOD
PI
POW
POWER
RADIANS
RAND
ROUND
SIGN
SIN
SQRT
SUM
TAN
TRUNCATE

Date Functions
ADDDATE
ADDTIME
CURDATE
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURTIME
DATE
DATEDIFF
DATE_ADD
DATE_FORMAT
DATE_SUB
DAY
DAYNAME
DAYOFMONTH
DAYOFWEEK
DAYOFYEAR
EXTRACT
FROM_DAYS
HOUR
LAST_DAY
LOCALTIME
LOCALTIMESTAMP
MAKEDATE
MAKETIME
MICROSECOND
MINUTE
MONTH
MONTHNAME
NOW
PERIOD_ADD
PERIOD_DIFF
QUARTER
SECOND
SEC_TO_TIME
STR_TO_DATE
SUBDATE
SUBTIME
SYSDATE
TIME
TIME_FORMAT
TIME_TO_SEC
TIMEDIFF
TIMESTAMP
TO_DAYS
WEEK
WEEKDAY
WEEKOFYEAR
YEAR
YEARWEEK

Advanced Functions
BIN
BINARY
CASE
CAST
COALESCE
CONNECTION_ID
CONV
CONVERT
CURRENT_USER
DATABASE
IF
IFNULL
ISNULL
LAST_INSERT_ID
NULLIF
SESSION_USER
SYSTEM_USER
USER
VERSION

SQL Server Functions
String Functions
ASCII
CHAR
CHARINDEX
CONCAT
Concat with +
CONCAT_WS
DATALENGTH
DIFFERENCE
FORMAT
LEFT
LEN
LOWER
LTRIM
NCHAR
PATINDEX
QUOTENAME
REPLACE
REPLICATE
REVERSE
RIGHT
RTRIM
SOUNDEX
SPACE
STR
STUFF
SUBSTRING
TRANSLATE
TRIM
UNICODE
UPPER

Numeric Functions
ABS
ACOS
ASIN
ATAN
ATN2
AVG
CEILING
COUNT
COS
COT
DEGREES
EXP
FLOOR
LOG
LOG10
MAX
MIN
PI
POWER
RADIANS
RAND
ROUND
SIGN
SIN
SQRT
SQUARE
SUM
TAN

Date Functions
CURRENT_TIMESTAMP
DATEADD
DATEDIFF
DATEFROMPARTS
DATENAME
DATEPART
DAY
GETDATE
GETUTCDATE
ISDATE
MONTH
SYSDATETIME
YEAR

Advanced Functions
CAST
COALESCE
CONVERT
CURRENT_USER
IIF
ISNULL
ISNUMERIC
NULLIF
SESSION_USER
SESSIONPROPERTY
SYSTEM_USER
USER_NAME

MS Access Functions
String Functions
Asc
Chr
Concat with &
CurDir
Format
InStr
InstrRev
LCase
Left
Len
LTrim
Mid
Replace
Right
RTrim
Space
Split
Str
StrComp
StrConv
StrReverse
Trim
UCase

Numeric Functions
Abs
Atn
Avg
Cos
Count
Exp
Fix
Format
Int
Max
Min
Randomize
Rnd
Round
Sgn
Sqr
Sum
Val

Date Functions
Date
DateAdd
DateDiff
DatePart
DateSerial
DateValue
Day
Format
Hour
Minute
Month
MonthName
Now
Second
Time
TimeSerial
TimeValue
Weekday
WeekdayName
Year

Other Functions
CurrentUser
Environ
IsDate
IsNull
IsNumeric

SQL Quick Ref

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

Целые числа произвольной точности открывают много новых вариантов использования JavaScript.

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

Большие числовые идентификаторы и высокоточные метки времени не могут быть безопасно представлены типом данных в JavaScript. Зачастую это приводит к ошибкам и вынуждает разработчиков хранить их как строки. С эти данные могут быть представлены как числовые значения.

можно будет использовать в возможной реализации типа данных . Это позволит хранить денежные величины в виде десятичных дробей без потери точности при выполнении операций (например, без проблемы ).

Ранее в JavaScript в любом из этих случаев приходилось использовать библиотеки, эмулирующие функционал . Когда станет широко доступным, можно будет отказаться от этих зависимостей в пользу нативно поддерживаемого . Это поможет сократить время загрузки, парсинга и компиляции, а также увеличит производительность во время выполнения.

Нативный работает быстрее, чем популярные пользовательские библиотеки

Для полифила требуется библиотека, которая реализует необходимые функции, а также шаг транспиляции, чтобы перевести новый синтаксис в вызов API библиотеки. В настоящее время Babel поддерживает парсинг литералов , но не умеет преобразовывать их. Поэтому мы не надеемся, что будет использоваться в продакшне на сайтах, требующих совместимость с широким кругом браузеров. Однако, сейчас, когда этот функционал начинает появляться в браузерах, вы можете начать экспериментировать с BigInt, ожидая со временем всё более широкой поддержки BigInt.

Аргументы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.

Преобразование данных типа float и realConverting float and real data

При преобразовании в любой целочисленный тип данных значения типа float усекаются.Values of float are truncated when they are converted to any integer type.

Если тип данных float или real нужно преобразовать в символьный тип, то, как правило, строковую функцию STR использовать удобнее, чем CAST( ).When you want to convert from float or real to character data, using the STR string function is usually more useful than CAST( ). Это объясняется большими возможностями функции STR в отношении форматирования.This is because STR enables more control over formatting. Дополнительные сведения см. в статьях STR (Transact-SQL) и Функции (Transact-SQL).For more information, see STR (Transact-SQL) and Functions (Transact-SQL).

До версии SQL Server 2016 (13.x);SQL Server 2016 (13.x) точность преобразования значений float в decimal или numeric была ограничена 17 знаками.Prior to SQL Server 2016 (13.x);SQL Server 2016 (13.x), conversion of float values to decimal or numeric is restricted to values of precision 17 digits only. Любое значение типа float менее 5E-18 (в экспоненциальном представлении 5E-18 или десятичном представлении 0.0000000000000000050000000000000005) округлялось до 0.Any float value less than 5E-18 (when set using either the scientific notation of 5E-18 or the decimal notation of 0.0000000000000000050000000000000005) rounds down to 0. Начиная с версии SQL Server 2016 (13.x);SQL Server 2016 (13.x) это ограничение отсутствует.This is no longer a restriction as of SQL Server 2016 (13.x);SQL Server 2016 (13.x).

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

Ниже приведены числовые типы данных в 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

Тип данных UNIQUEIDENTIFIER

Как можно судить по его названию, тип данных UNIQUEIDENTIFIER является однозначным идентификационным номером, который сохраняется в виде 16-байтовой двоичной строки. Этот тип данных тесно связан с идентификатором GUID (Globally Unique Identifier — глобально уникальный идентификатор), который гарантирует однозначность в мировом масштабе. Таким образом, этот тип данных позволяет однозначно идентифицировать данные и объекты в распределенных системах.

Инициализировать столбец или переменную типа UNIQUEIDENTIFIER можно посредством функции NEWID или NEWSEQUENTIALID, а также с помощью строковой константы особого формата, состоящей из шестнадцатеричных цифр и дефисов. Эти функции рассматриваются в следующей статье.

К столбцу со значениями типа данных UNIQUEIDENTIFIER можно обращаться, используя в запросе ключевое слово ROWGUIDCOL, чтобы указать, что столбец содержит значения идентификаторов. (Это ключевое слово не генерирует никаких значений.) Таблица может содержать несколько столбцов типа UNIQUEIDENTIFIER, но только один из них может иметь ключевое слово ROWGUIDCOL.

Округление типа данных 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, 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.
Избегайте использование этих типов данных в новых проектах и, по возможности, измените их в текущих проектах.)

Типы данных 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

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

АргументыArguments

decimal ) ] и numeric ) ]decimal )] and numeric )]Числа с фиксированной точностью и масштабом.Fixed precision and scale numbers. При использовании максимальной точности числа могут принимать значения в диапазоне от -10^38+1 до 10^38-1.When maximum precision is used, valid values are from — 10^38 +1 through 10^38 — 1. Синонимами типа decimal по стандарту ISO являются типы dec и dec( p, s ) .The ISO synonyms for decimal are dec and dec(p, s). Тип numeric функционально эквивалентен типу decimal.numeric is functionally identical to decimal.

p (точность)p (precision)Максимальное общее число хранимых десятичных разрядов.The maximum total number of decimal digits to be stored. Это число включает символы слева и справа от десятичной запятой.This number includes both the left and the right sides of the decimal point. Точность должна быть значением в диапазоне от 1 до максимум 38.The precision must be a value from 1 through the maximum precision of 38. Точность по умолчанию составляет 18.The default precision is 18.

Примечание

В Informatica поддерживаются только 16 значащих разрядов независимо от указанных точности и масштаба.Informatica only supports 16 significant digits, regardless of the precision and scale specified.

s (масштаб)s (scale)Максимальное число хранимых десятичных разрядов справа от десятичной запятой.The number of decimal digits that are stored to the right of the decimal point. Это число отнимается от p для определения максимального количества цифр слева от десятичной запятой.This number is subtracted from p to determine the maximum number of digits to the left of the decimal point. Масштаб должен иметь значение от 0 до p и может быть указан только при заданной точности.Scale must be a value from 0 through p, and can only be specified if precision is specified. По умолчанию масштаб принимает значение 0, поэтому 0 <= s <= p.The default scale is 0 and so 0 <= s <= p. Максимальный размер хранилища зависит от точности.Maximum storage sizes vary, based on the precision.

ТочностьPrecision Байты хранилищаStorage bytes
1–91 — 9 55
10–1910-19 99
20–2820-28 1313
29–3829-38 1717

Примечание

В Informatica (при подключении с помощью соединителя SQL Server PDW для Informatica) поддерживаются только 16 значащих разрядов независимо от указанных точности и масштаба.Informatica (connected through the SQL Server PDW Informatica Connector) only supports 16 significant digits, regardless of the precision and scale specified.

Статус-кво: Number

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

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

Его увеличение на единицу даёт ожидаемый результат:

Но если мы увеличим его ещё на единицу, не сможет точно сохранить результат:

Обратите внимание, что результат выражения будет равен результату выражения. Поэтому всегда, когда мы получаем конкретно это значение в JavaScript, нельзя сказать, является ли оно точным или нет

Любые вычисления с целыми числами вне безопасного целочисленного диапазона (т. е. от до ) потенциально не точны. По этой причине мы можем полагаться только на целочисленные значения в безопасном диапазоне.

Numeric Data Types

MySQL uses all the standard ANSI SQL numeric data types, so if you’re coming to MySQL from a different database system, these definitions will look familiar to you.

The following list shows the common numeric data types and their descriptions −

  • INT − A normal-sized integer that can be signed or unsigned. If signed, the allowable range is from -2147483648 to 2147483647. If unsigned, the allowable range is from 0 to 4294967295. You can specify a width of up to 11 digits.

  • TINYINT − A very small integer that can be signed or unsigned. If signed, the allowable range is from -128 to 127. If unsigned, the allowable range is from 0 to 255. You can specify a width of up to 4 digits.

  • SMALLINT − A small integer that can be signed or unsigned. If signed, the allowable range is from -32768 to 32767. If unsigned, the allowable range is from 0 to 65535. You can specify a width of up to 5 digits.

  • MEDIUMINT − A medium-sized integer that can be signed or unsigned. If signed, the allowable range is from -8388608 to 8388607. If unsigned, the allowable range is from 0 to 16777215. You can specify a width of up to 9 digits.

  • BIGINT − A large integer that can be signed or unsigned. If signed, the allowable range is from -9223372036854775808 to 9223372036854775807. If unsigned, the allowable range is from 0 to 18446744073709551615. You can specify a width of up to 20 digits.

  • FLOAT(M,D) − A floating-point number that cannot be unsigned. You can define the display length (M) and the number of decimals (D). This is not required and will default to 10,2, where 2 is the number of decimals and 10 is the total number of digits (including decimals). Decimal precision can go to 24 places for a FLOAT.

  • DOUBLE(M,D) − A double precision floating-point number that cannot be unsigned. You can define the display length (M) and the number of decimals (D). This is not required and will default to 16,4, where 4 is the number of decimals. Decimal precision can go to 53 places for a DOUBLE. REAL is a synonym for DOUBLE.

  • DECIMAL(M,D) − An unpacked floating-point number that cannot be unsigned. In the unpacked decimals, each decimal corresponds to one byte. Defining the display length (M) and the number of decimals (D) is required. NUMERIC is a synonym for DECIMAL.

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

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

Adblock
detector