Статьи

Дата, время и число типов данных в SQL Server

SQL Server поддерживает два типа данных T-SQL для хранения даты и времени:

Основное различие между этими двумя типами данных заключается в количестве места, которое они занимают. datetime занимает 8 байтов, а smalldatetime всего 4 байта. Другими различиями между этими двумя типами являются точность сохраненной даты и диапазон дат, которые можно использовать. Точность smalldatetime составляет одну минуту, и она охватывает даты с 1 января 1900 года по 6 июня 2079 года, что обычно более чем достаточно. Точность даты и времени составляет 3,33 мс, и она охватывает даты с 1 января 1753 года по 31 декабря 9999 года.

Константы даты и времени записываются в Transact-SQL с разделителями кавычек (как и символьные строки):

обновить Contacts_2 Установить DateOfBirth = '21.02.1965 10:03', где ContactId = 'CO-92-81'

СОВЕТ
SQL Server поддерживает множество различных форматов даты и времени. Функция Convert () принимает параметр, который управляет форматом функций даты и времени (подробно описано в Главе 4).

Если время не указано в константе, SQL Server автоматически назначает значение по умолчанию - 12:00 (полночь). Следует помнить, что SQL Server всегда записывает время как часть этих типов данных. Таким образом, если вы хотите выбрать все контакты, родившиеся в определенный день, вы не должны использовать что-то вроде этого:

выберите * из Контактов_2, где DateOfBirth = '21.02.1965'


Этот оператор извлекает записи с DateOfBirth, установленным на полночь того дня. Такое решение может быть приемлемым, если все другие приложения, записывающие значения в поле, также совершают ту же ошибку. Правильное решение будет

выберите * из Контактов_2, где DateOfBirth> = '21.02.1965' и DateOfBirth <22.02.1965 '


Целые числа
Целые числа являются целыми числами. SQL Server поддерживает 1-, 2-, 4- и 8-байтовые целые числа. Тип данных бит используется для хранения 1 или 0, чтобы представить логические значения истины и ложи. В следующей таблице перечислены целочисленные типы данных, их объем хранения и диапазон значений.

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

СОВЕТ
Тем не менее, мы начинаем видеть компьютеры с миллиардами записей - и OLTP, и системы хранилищ данных становятся все больше и больше, а также существуют некоторые реализации распределенных баз данных, которые могут использовать целые числа более двух миллиардов. В этих случаях вы можете использовать bigint для первичных ключей.

Целочисленные константы не нуждаются в разделителях:

обновить инвентарный набор StatusId = 3, операционный = 0, где InventoryId = 3432

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

Точность - это число значащих цифр в числе, а шкала - это количество цифр справа от десятичной точки. Например, число 123456.789 имеет точность 9 и шкалу 3. Точность действительных чисел составляет до 7 цифр, а точность чисел с плавающей запятой - до 15 цифр. По этой причине они идеально подходят для науки и техники (где, например, вам может не потребоваться пара метров, когда вы измеряете расстояние между Землей и Луной), но они не подходят для финансовой индустрии ( где бюджет компании должен быть точным до последнего цента). Чтобы записать число 234 000 000 000 в математике, вы можете использовать 234 × 109, а в Transact-SQL вы можете использовать 234E9. Это известно как научное обозначение. Число после E называется показателем степени, а число перед E называется мантиссой. Эта запись также может использоваться для хранения небольших констант. В математике 0,000000000234 можно записать как 0,234 × 10–9, а в Transact-SQL - 0,234E-9.

SQL Server использует стандарт IEEE 754 для хранения этих номеров. Когда число с плавающей запятой или вещественной переменной или столбцу присваивается число, SQL Server сначала преобразует десятичное число в его двоичное представление. Это преобразование является причиной, по которой эти значения приблизительно, но не точно, равны десятичной версии. Вот почему они упоминаются как приблизительные числа. Поэтому не стоит полагаться на эквивалентность двух таких чисел. Вам следует ограничить их использование в выражениях Where операторами <и> и избегать использования оператора =.

Точные числа
Десятичный или числовой тип данных не использует аппроксимации при хранении чисел. К сожалению, это требует гораздо больше места, чем реальные и плавающие типы данных. Когда десятичный столбец или переменная определены, вы должны указать их масштаб и точность.
SQL Server может хранить десятичные числа с максимальной точностью 38. Масштаб может быть меньше или равен точности.
В следующем примере столбцы «Вес» и «Высота» имеют точность 5 и масштаб 2 - столбцы могут содержать до двух цифр после десятичной точки и до трех цифр до.

Создать таблицу Patient (PatientId int, FullName varchar (30), десятичный вес (5,2), десятичный рост (5,2), ADP smallint, BDZ tinyint) go

десятичные константы также не нуждаются в разделителях:

вставить в значения пациента (PatientId, FullName, вес, рост, ADP, BDZ) (834021, «Том Джонс», 89,5, 188,5, 450, 11)

Типы денежных данных
Типы данных money и smallmoney представляют собой компромисс между точностью десятичных чисел и небольшим размером действительных чисел. smallmoney занимает 4 байта и использует ту же внутреннюю структуру, что и числа int. Данные могут содержать до четырех цифр после десятичной точки. По этой причине вы можете хранить числа в диапазоне от –214 768,3648 до 214 768,3647 в типе данных smallmoney. Тип данных money использует ту же структуру для хранения информации, что и тип данных bigint. Он занимает 8 байт для хранения, поэтому его значения должны находиться в диапазоне от –922,337,203,685,477.5808 до +922,337,203,685,477.5807.
Денежным константам может предшествовать $ или один из 18 других символов валюты (перечисленных в SQL Server Books OnLine):

обновить Inventory_2 Set Rent = $ 0, LeaseCost = $ 119,95, где InventoryId = 3432

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

  • двоичный
  • VARBINARY
  • VARBINARY (макс
  • образ

Бинарные и varbinary типы данных могут хранить до 8000 байтов информации, а image и varbinary (max) могут хранить до 2 ГБ данных. В следующем примере создается таблица с двумя двоичными столбцами:

CREATE TABLE MyTable (Id int, BinData varbinary (8000), диаграмма varbinary (max)) go

Двоичные константы записываются в виде шестнадцатеричных представлений битовых строк и имеют префикс 0x (ноль и x):

Обновить набор MyTable BinData = 0x82A7210B, где Id = 121131


Отличная новая функция SQL Server 2005 - это функция OPENROWSET () с новым поставщиком BULK OLE DB для чтения файла и загрузки его в виде набора строк в столбец varbinary (max):

ОБНОВЛЕНИЕ Диаграмма dbo.MyTable SET = (ВЫБЕРИТЕ * ОТ OPENROWSET (ОБЪЁМ 'C: My Picturesdesktop.bmp', SINGLE_BLOB) AS a), где Id = 121131

Основные конструкты программирования Transact-SQL

Предыдущий совет взят из «15 советов за 15 минут: основные конструкции программирования на Transact-SQL», взятых из главы 3 книги. «Программирование хранимых процедур Microsoft SQL Server 2005 в T-SQL и .NET» Деян Сандерик, предоставлено издательством McGraw-Hill Publishing.

Новости

Где купить гибкий штатив для фотоаппарата

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

Походы пешком по Украине

Осуществление пеших походов по своей родной стране является одним из видов познания её достопримечательностей и прекрасных мест. При пеших походах все детали красоты и яркости природы своей страны

Значение имени артем
Уже известно и доказано, что значение имени артем влияет на судьбу его обладателя. Попытки понять и объяснить влияние имени на судьбу и характер человека начались в прошлом, продолжаются и в настоящее

Ржачные поздравления с днем рождения
Желаю во всем всегда успевать И все делать лишь на 5. Желаю быть счастливой на свете этом, И чтоб жизнь казалась только летом. Пускай все всегда выходит И все твои мечты реализуются. *** Открыв конверт,

Славянские фамилии и их значения
Фамилии славянских народов порой бывает трудно разделить по «национальным квартирам», хотя последнее время это пытаются сделать в Украине. На протяжении многих веков так называемые пишущие люди стремились

Сонник толкование снов к чему
Интересные и серые, пропитанные отголосками прошедшего дня или, напротив, несущие в себе некие знамения, переносящие нас в далекое прошлое или рисующие в сознании картины будущего,

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

Поздравление парня с др
«Денек рождения- печальный праздничек…», - так гласит каждый, хотя где то в глубине души так ожидает сей день. Но самое, пожалуй, приятное – сделать это событие запоминающимся конкретно для возлюбленного

Значение фамилии порошенко
В 1956 году Алексей Вальцман женился на Евгении Сергеевне Порошенко и при этом изменил фамилию с Вальцман на Порошенко. В 1974 году - занял должность директора Бендерского исследовательского экспериментально-ремонтного

Само популярное видео
Предложили мне высокооплачиваемую и интересную работу в Киеве. Согласился сразу, грех такими предложениями в наше время разбрасываться. Работа работой, а образовалась проблема - жильё. По своему опыту