Дата и время (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
Форматы времени
Строковый формат без разделителей