datetime2 (Transact-SQL)
Определяет дату, объединенную со временем дня в 24-часовом формате. Тип данных datetime2 может рассматриваться как расширение существующего типа datetime, имеющее более широкий диапазон дат, большую точность в долях секунды по умолчанию и необязательную пользовательскую точность.
Обзор всех типов данных и функций даты и времени в языке Transact-SQL см. в разделе Типы данных и функции даты и времени (Transact-SQL). Сведения и примеры, относящиеся к типам данных и функциям даты и времени, см. в разделе Использование данных даты и времени.
Описание типа данных datetime2
Свойство |
Значение |
---|---|
Синтаксис |
datetime2 [ (fractional seconds precision) ] |
Сведения об использовании |
DECLARE @MyDatetime2 datetime2(7) CREATE TABLE Таблица1 ( Столбец1 datetime2(7) ) |
Формат строковых литералов по умолчанию (используется для клиента нижнего уровня) |
ГГГГ-ММ-ДД чч:мм:сс[.доли секунды] Дополнительные сведения см. в подразделе «Обратная совместимость для клиентов нижнего уровня» раздела Использование данных даты и времени. |
Диапазон даты |
От 0001-01-01 до 9999-12-31 С 1 января 1 года нашей эры до 31 декабря 9999 года нашей эры. |
Диапазон времени |
От 00:00:00 до 23:59:59.9999999 |
Диапазон смещения часового пояса |
Отсутствует |
Диапазоны элементов |
ГГГГ представляет собой четырехзначное число от 0001 до 9999, определяющее год. ММ — двузначное число от 01 до 12, представляющее месяц указанного года. Обозначение ДД состоит из двух цифр, представляющих день указанного месяца, и принимает значения от 01 до 31 в зависимости от месяца. Обозначение «чч» состоит из двух цифр, представляющих час, и принимает значения от 00 до 23. Обозначение «мм» состоит из двух цифр, представляющих минуту, и принимает значения от 00 до 59. Обозначение «сс» состоит из двух цифр, представляющих секунду, и принимает значения от 00 до 59. Обозначение n* может содержать от нуля до семи цифр, представляющих доли секунды, и принимает значения от 0 до 9999999. |
Длина в символах |
Минимальная — 19 позиций (ГГГГ-ММ-ДД чч:мм:сс), максимальная — 27 позиций ((ГГГГ-ММ-ДД чч:мм:сс.0000000) |
Точность, масштаб |
От 0 до 7 цифр, с точностью 100 нс. Точность по умолчанию составляет 7 цифр. |
Объем памяти |
Необходимо 6 байт для представления точности меньше 3 цифр, 7 байт — для точности в 3 и 4 цифр. Для представления любых других значений точности требуется 8 байт. |
Точность |
100 наносекунд |
Значение по умолчанию |
1900-01-01 00:00:00 |
Календарь |
Григорианский |
Определяемая пользователем точность в долях секунды |
Да |
Учет и сохранение смещения часового пояса |
Нет |
Учет перехода на летнее время |
Нет |
Сведения о метаданных для типов данных см. в разделе sys.systypes (Transact-SQL) или TYPEPROPERTY (Transact-SQL). В некоторых типах данных дат и времени точность и масштаб разные. Сведения о точности и масштабе для столбца см. в разделе COLUMNPROPERTY (Transact-SQL), COL_LENGTH (Transact-SQL) или sys.columns (Transact-SQL).
Поддерживаемые форматы строковых литералов для типа данных datetime2
В следующих таблицах приводятся поддерживаемые форматы строковых литералов ISO 8601 и ODBC для типа данных datetime2. Дополнительные сведения об алфавитных и числовых форматах, форматах строки без разделителей и форматах времени для компонентов даты и времени datetime2 см. в разделах date (Transact-SQL) и time (Transact-SQL).
ISO 8601 |
Описания |
---|---|
ГГГГ-ММ-ДДТчч:мм:сс[.nnnnnnn] ГГГГ-ММ-ДДТчч:мм:сс[.nnnnnnn] |
На этот формат не влияют настройки языкового стандарта сеанса инструкций SET LANGUAGE и SET DATEFORMAT. Символы T, двоеточие (:) и точка (.) включаются в строковый литерал, например «2007-05-02T19:58:47.1234567». |
ODBC |
Описание |
---|---|
{ ts 'гггг-мм-дд чч:мм:сс[.доли секунды]' } |
Зависит от API-интерфейса ODBC.
|
Соответствие стандартам ANSI и ISO 8601
Соглашения стандартов ANSI и ISO 8601 для типов данных date и time применимы к типу данных datetime2.
Примеры
В следующем примере сравниваются результаты приведения строкового типа к каждому из типов данных date и time.
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 |
См. также