SQL Server поддерживает два типа данных с плавающей точкой или приближенными числовыми значениями: float и real. Тип данных float, как и тип decimal, описанный ранее, принимает параметр. Параметр, предоставляемый типу данных float, задает количество битов, используемых для хранения мантиссы числа с плавающей точкой. Любое значение, меньшее или равное 24, интерпретируется как 24, все значения большие 24— как 53. Это означает, что мантисса занимает 24 или 53 бита в зависимости от величины параметра, заданного для типа данных float.
Тип данных |
Объем памяти |
Допустимые значения |
float (n ≤ 24) |
4 байта |
От-3.40х1038до-1.18х10-38 и от 1.18 х 10-38 до 3.40 х 1038 |
float (24 < n ≤ 53) |
8 байтов |
От-1.79 х 10308 до -2.23 х 10-308 и от 2.23 х 10"308 до 1.79x10308 |
real |
Функционально эквивалентен float(24) |
Тип данных |
Объем памяти |
Допустимые значения |
Примечания |
datetime |
8 байтов |
С 1 января 1753 г. по 31 декабря 9999 г. с точностью до каждой третьей миллисекунды |
Поддерживается в основном для обратной совместимости. Везде, где это возможно, применяйте типы datetime2, date, time или datetimeoffset |
smalldatetime |
4 байта |
С 1 января 1900 г. по 5 июня 2079 г. с точностью до минуты |
Поддерживается в основном для обратной совместимости. Везде, где это возможно, применяйте типы datetime2, date, time или datetimeoffset |
datetime2 (точность до долей секунд) |
От 6 до 8 байтов |
С 1 января 0001 г. по 31 декабря 9999 г. с точностью до заданной доли секунды |
Применяйте, если нужны дата и время суток, но без учета сдвига часового пояса |
datetimeoffset (точность до долей секунд) |
От 8 до 10 байтов |
С 1 января 0001 г. по 31 декабря 9999 г. с точностью до заданной доли секунды и сдвигом часового пояса от -14:00 до +14:00 |
Применяйте, если нужны дата, время суток и сдвиг или смещение часового пояса |
date |
3 байта |
С 1 января 0001 по 31 декабря 9999 |
Применяется, если нужна только дата |
time (доли секунд) |
От З до 5 байтов |
С 00:00:00 до 23:59:59 с точностью до заданной доли секунды |
Используется, если необходимо только время суток |
До версии SQL Server 2008 для обработки дат и времени суток применялись только два типа данных: datetime и smalldatetime.
С типом данных datetime связаны некоторые проблемы. Одна из них состоит в том, что дата и время суток хранятся вместе, что не всегда желательно.
Пример 1.1. Из таблицы Sales.SalesOrderHeader (Общие сведения о заказе на продажу) извлечь все заказы, сделанные 1 июля 2001 г.
Этот запрос вернет только заказы, сделанные 1 июля 2001 г. точно в 00:00:00. Чтобы получить желаемый результат, вы можете применить следующее.
Пример 1.2. Из таблицы Sales.SalesOrderHeader (Общие сведения о заказе на продажу) извлечь все заказы, сделанные 1 июля 2001 г.
При попытке преобразования строковой константы в тип данных datetime или smalldatetime следует всегда применять формат YYYYMMDD для дат без времени суток и формат YYYY-MM-DDTHH:MI:SS.XXX для дат со временем суток. Оба эти формата действуют независимо от языка и форматов дат, установленных в вашем соединении.
Подробную информацию о том, как повлиять на форматы дат, принимаемые SQL Server см. в разд. "SET DATEFORMAT" и "SET LANGUAGE" электронной документации по SQL Server.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.