Дата и время (Transact-SQL)

Типы данных, используемые для хранения даты и времени.

  • datetime и smalldatetime
    Представляют дату и время.

    Тип данных Диапазон Точность

    datetime

    1 января 1753 года — 31 декабря 9999 года

    3,33 миллисекунды

    smalldatetime

    1 января 1900 года — 6 июня 2079 года

    1 минута

Замечания

Значения типа datetime хранятся внутри компонента SQL Server 2005 Database Engine в виде 4-байтовых целых чисел. Первые четыре байта содержат количество дней до или после даты отсчета: 1 января 1900 года. Дата отсчета является системной датой. Вторые четыре байта содержат текущее значение времени, представленного в виде трехсотых долей секунды, прошедших после полуночи.

Тип данных smalldatetime используется для хранения дат и значений времени с меньшей точностью, чем datetime. В компоненте Database Engine значения типа smalldatetime хранятся в виде 2-байтовых целых чисел. Первые два байта содержат количество дней, прошедших с 1 января 1900 года. В двух следующих байтах хранится количество минут, прошедших после полуночи.

Значения типа datetime округляются в большую сторону до 0,000, 0,003 или 0,007 долей секунд как показано в таблице, представленной ниже.

Пример Пример округления

01/01/98 23:59:59.999

1998-01-02 00:00:00.000

01/01/98 23:59:59.995,

01/01/98 23:59:59.996,

01/01/98 23:59:59,997, или

01/01/98 23:59:59.998

1998-01-01 23:59:59.997

01/01/98 23:59:59.992,

01/01/98 23:59:590,993, или

01/01/98 23:59:59.994

1998-01-01 23:59:59.993

01/01/98 23:59:590,990, или

01/01/98 23:59:59.991

1998-01-01 23:59:59.990

Значения типа smalldatetime, меньшие либо равные 29,998 секунд округляются до минут в меньшую сторону; значения, равные или большие 29,999 округляются до минут в большую сторону.

--Returns time as 12:35.
SELECT CAST('2003-05-08 12:35:29.998' AS smalldatetime);
GO
--Returns time as 12:36.
SELECT CAST('2003-05-08 12:35:29.999' AS smalldatetime);
GO

См. также

Справочник

Функции даты и времени (Transact-SQL)
Типы данных (Transact-SQL)
ALTER TABLE (Transact-SQL)
Функции CAST и CONVERT (Transact-SQL)
CREATE TABLE (Transact-SQL)
DECLARE @local\_variable (Transact-SQL)
DELETE (Transact-SQL)
INSERT (Transact-SQL)
SET @local\_variable (Transact-SQL)
UPDATE (Transact-SQL)

Другие ресурсы

Преобразование типов данных (компонент Database Engine)
Формат ISO 8601
Алфавитный формат даты
Числовой формат дат
Формат ODBC Datetime
Форматы времени
Строковый формат без разделителей

Справка и поддержка

Получение помощи по SQL Server 2005