smalldatetime (Transact-SQL)
Определяет дату, сочетающуюся с временем дня. Время представлено в 24-часовом формате с секундами, всегда равными нулю (:00), без долей секунд.
Примечание |
---|
Используйте для новых проектов типы данных time, date, datetime2 и datetimeoffset. Эти типы соответствуют стандарту языка SQL. Их проще переносить на другие платформы. Типы данных time, datetime2 и datetimeoffset обладают большей точностью в долях секунды. Тип данных datetimeoffset поддерживает часовые пояса для приложений, развернутых по всему миру. |
Обзор всех типов данных и функций даты и времени в языке Transact-SQL см. в разделе Типы данных и функции даты и времени (Transact-SQL). Сведения и примеры, относящиеся к типам данных и функциям даты и времени, см. в разделе Использование данных даты и времени.
Описание типа данных smalldatetime
Синтаксис |
smalldatetime |
Использование |
DECLARE @MySmalldatetime smalldatetime CREATE TABLE Таблица1 ( Столбец1 smalldatetime ) |
Форматы строковых литералов по умолчанию (используется для клиента нижнего уровня) |
Неприменимо |
Диапазон даты |
От 01.01.1900 до 06.06.2079 1 января 1900 года — 6 июня 2079 года |
Диапазон времени |
От 00:00:00 до 23:59:59 2007-05-09 23:59:59 округляется до 2007-05-10 00:00:00 |
Диапазоны элементов |
ГГГГ — четырехзначное число от 1900 до 2079, представляющее год. ММ обозначает 2 цифры, которые представляют месяц и принимают значения от 01 до 12. Обозначение ДД состоит из двух цифр, представляющих день указанного месяца, и принимает значения от 01 до 31 в зависимости от месяца. Обозначение чч состоит из двух цифр, представляющих час, и принимает значения от 00 до 23. Обозначение мм состоит из двух цифр, представляющих минуту, и принимает значения от 00 до 59. Обозначение сс состоит из двух цифр, представляющих секунду, и принимает значения от 00 до 59. Значения, меньшие или равные 29,998 секунд, округляются до минуты в меньшую сторону; значения, равные или большие 29,999, округляются до минуты в большую сторону. |
Длина в символах |
Максимально 19 позиций |
Объем памяти |
4 байта, фиксированный. |
Точность |
Одна минута |
Значение по умолчанию |
1900-01-01 00:00:00 |
Календарь |
Григорианский (Не включает полный диапазон лет) |
Определяемая пользователем точность в долях секунды |
Нет |
Учет и сохранение смещения часового пояса |
Нет |
Учет перехода на летнее время |
Нет |
Соответствие стандартам ANSI и ISO 8601
smalldatetime не удовлетворяет стандартам ANSI и ISO 8601.
Примеры
А. Приведение строковых литералов с секундами к типу smalldatetime
В следующем примере сравнивается преобразование секунд в строковых литералах в тип данных smalldatetime.
SELECT
CAST('2007-05-08 12:35:29' AS smalldatetime)
,CAST('2007-05-08 12:35:30' AS smalldatetime)
,CAST('2007-05-08 12:59:59.998' AS smalldatetime);
Вход |
Выход |
---|---|
2007-05-08 12:35:29 |
2007-05-08 12:35:00 |
2007-05-08 12:35:30 |
2007-05-08 12:36:00 |
2007-05-08 12:59:59.998 |
2007-05-08 13:00:00 |
Б. Сравнение типов данных даты и времени
В следующем примере сравниваются результаты приведения строкового типа к каждому из типов данных даты и времени.
SELECT
CAST('2007-05-08 12:35:29. 1234567 +12:15' AS time(7)) AS 'time'
,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS date) AS 'date'
,CAST('2007-05-08 12:35:29.123' AS smalldatetime) AS
'smalldatetime'
,CAST('2007-05-08 12:35:29.123' AS datetime) AS 'datetime'
,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS datetime2(7)) AS
'datetime2'
,CAST('2007-05-08 12:35:29.1234567 +12:15' AS datetimeoffset(7)) AS
'datetimeoffset';
Тип данных |
Вывод |
---|---|
time |
12:35:29. 1234567 |
date |
2007-05-08 |
smalldatetime |
2007-05-08 12:35:00 |
datetime |
2007-05-08 12:35:29.123 |
datetime2 |
2007-05-08 12:35:29. 1234567 |
datetimeoffset |
2007-05-08 12:35:29.1234567 +12:15 |