Поделиться через


Функции даты и времени (Transact-SQL)

В следующих подразделах данного раздела содержится обзор всех типов и функций даты и времени в Transact-SQL. Сведения и примеры, общие для типов данных и функций даты и времени, см. в разделе Использование данных даты и времени.

  • Типы данных даты и времени

  • Функции даты и времени

  • Функции, получающие значения системной даты и времени

  • Функции, получающие компоненты даты и времени

  • Функции, получающие разность даты и времени

  • Функции, изменяющие значения даты и времени

  • Функции, устанавливающие или получающие формат сеанса

  • Функции, проверяющие значения даты и времени

  • Дата и время — см. также

Типы данных даты и времени

Типы данных даты и времени Transact-SQL перечислены в следующей таблице. 

Тип данных

Format

Диапазон

Точность

Объем памяти (в байтах)

Определяемая пользователем точность в долях секунды

Смещение часового пояса

time;

чч:мм:сс[.ннннннн]

От 00:00:00.0000000 до 23:59:59.9999999

100 наносекунд

От 3 до 5

Да

Нет

date;

ГГГГ-ММ-ДД

От 0001-01-01 до 9999-12-31

1 день

3

Нет

Нет

smalldatetime;

ГГГГ-ММ-ДД чч:мм:сс

От 01.01.1900 до 06.06.2079

1 минута

4

Нет

Нет

datetime;

ГГГГ-ММ-ДД чч:мм:сс[.ннн]

От 01.01.1753 до 9999-12-31

0,00333 секунда

8

Нет

Нет

datetime2;

ГГГГ-ММ-ДД чч:мм:сс[.ннннннн]

От 0001-01-01 00:00:00.0000000 до 9999-12-31 23:59:59.9999999

100 наносекунд

От 6 до 8

Да

Нет

datetimeoffset;

ГГГГ-ММ-ДД чч:мм:сс[.ннннннн] [+|-]чч:мм

От 0001-01-01 00:00:00.0000000 до 9999-12-31 23:59:59.9999999 (время в формате UTC)

100 наносекунд

От 8 до 10

Да

Да

ПримечаниеПримечание

Тип данных rowversion языка Transact-SQL не является типом данных времени или даты. Тип timestamp — устаревший синоним типа rowversion.

Функции даты и времени

Функции даты и времени Transact-SQL перечислены в следующих таблицах. Дополнительные сведения о детерминизме см. в разделе Детерминированные и недетерминированные функции.

Функции, получающие значения системной даты и времени

Все значения системной даты и времени наследуется от операционной системы компьютера, на котором работает экземпляр SQL Server.

Высокоточные функции системной даты и времени

SQL Server 2008 R2 получает значения даты и времени с помощью функции GetSystemTimeAsFileTime() Windows API. Точность зависит от физического оборудования и версии Windows, в которой запущен экземпляр SQL Server. Точность возвращаемых значений этого API-интерфейса задана равной 100 нс. Точность может быть определена с помощью метода GetSystemTimeAdjustment() API-интерфейса Windows.

Функция

Синтаксис

Возвращаемое значение

Тип возвращаемых данных

Детерминизм

SYSDATETIME

SYSDATETIME ()

Возвращает значение типа datetime2(7), которое содержит дату и время компьютера, на котором запущен экземпляр SQL Server. Смещение часового пояса не включается.

datetime2(7)

Недетерминированная

SYSDATETIMEOFFSET

SYSDATETIMEOFFSET ( )

Возвращает значение типа datetimeoffset(7), которое содержит дату и время компьютера, на котором запущен экземпляр SQL Server. Смещение часового пояса включается.

datetimeoffset(7)

Недетерминированная

SYSUTCDATETIME

SYSUTCDATETIME ( )

Возвращает значение типа datetime2(7), которое содержит дату и время компьютера, на котором запущен экземпляр SQL Server. Возвращаемые дата и время отображаются в формате UTC.

datetime2(7)

Недетерминированная

Функции системной даты и времени меньшей точности

Функция

Синтаксис

Возвращаемое значение

Тип возвращаемых данных

Детерминизм

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP

Возвращает значение типа datetime2(7), которое содержит дату и время компьютера, на котором запущен экземпляр SQL Server. Смещение часового пояса не включается.

datetime

Недетерминированная

GETDATE

GETDATE ( )

Возвращает значение типа datetime2(7), которое содержит дату и время компьютера, на котором запущен экземпляр SQL Server. Смещение часового пояса не включается.

datetime

Недетерминированная

GETUTCDATE

GETUTCDATE ( )

Возвращает значение типа datetime2(7), которое содержит дату и время компьютера, на котором запущен экземпляр SQL Server. Возвращаемые дата и время отображаются в формате UTC.

datetime

Недетерминированная

Функции, получающие компоненты даты и времени

Функция

Синтаксис

Возвращаемое значение

Тип возвращаемых данных

Детерминизм

DATENAME

DATENAME ( datepart, date )

Возвращает строку символов, представляющую указанную часть datepart заданной даты.

nvarchar

Недетерминированная

DATEPART

DATEPART ( datepart, date )

Возвращает целое число, представляющее указанный компонент datepart указанной даты date.

int

Недетерминированная

DAY

DAY ( date )

Возвращает целое число, представляющее день указанной даты date.

int

Детерминированное

MONTH

MONTH ( date )

Возвращает целое число, представляющее месяц указанной даты date.

int

Детерминированное

YEAR

YEAR ( date )

Возвращает целое число, представляющее год указанной даты date.

int

Детерминированное

Функции, получающие разность даты и времени

Функция

Синтаксис

Возвращаемое значение

Тип возвращаемых данных

Детерминизм

DATEDIFF

DATEDIFF ( datepart, startdate , enddate )

Возвращает количество границ datepart даты или времени, пересекающихся между двумя указанными датами.

int

Детерминированное

Функции, изменяющие значения даты и времени

Функция

Синтаксис

Возвращаемое значение

Тип возвращаемых данных

Детерминизм

DATEADD

DATEADD (datepart, number , date )

Возвращает новое значение datetime, добавляя интервал к указанной части datepart заданной даты date.

Тип данных аргумента date

Детерминированное

SWITCHOFFSET

SWITCHOFFSET (DATETIMEOFFSET , time_zone)

SWITCHOFFSET изменяет смещение часового пояса для значения DATETIMEOFFSET и сохраняет значение UTC.

datetimeoffset с точностью в долях секунд DATETIMEOFFSET

Детерминированное

TODATETIMEOFFSET

TODATETIMEOFFSET (expression , time_zone)

TODATETIMEOFFSET преобразует значение типа datetime2 в значение типа datetimeoffset. Значение datetime2 преобразуется в местное время для указанного time_zone.

datetimeoffset с точностью в долях секунд аргумента datetime

Детерминированное

Функции, устанавливающие или получающие формат сеанса

Функция

Синтаксис

Возвращаемое значение

Тип возвращаемых данных

Детерминизм

@@DATEFIRST

@@DATEFIRST

Возвращает текущее значение параметра SET DATEFIRST для сеанса.

tinyint

Недетерминированная

SET DATEFIRST

SET DATEFIRST { number | @number_var }

Устанавливает первый день недели в виде числа от 1 до 7.

Не применимо

Не применимо

SET DATEFORMAT

SET DATEFORMAT { format | @format_var }

Задает порядок составляющих даты (месяц/день/год) для ввода данных типа datetime или smalldatetime.

Не применимо

Не применимо

@@LANGUAGE

@@LANGUAGE

Возвращает название используемого в данный момент языка. @@LANGUAGE не является функцией даты или времени. Однако на данные, выводимые функциями даты, могут повлиять настройки языка.

Не применимо

Не применимо

SET LANGUAGE

SET LANGUAGE { [ N ] 'language' | @language_var }

Устанавливает языковую среду сеанса и системных сообщений. SET LANGUAGE не является функцией даты или времени. Однако на данные, выводимые функциями даты, влияет параметр языка.

Не применимо

Не применимо

sp_helplanguage

sp_helplanguage [ [ @language = ] 'language' ]

Возвращает сведения о форматах даты во всех поддерживаемых языках. sp_helplanguage — это не хранимая процедура даты или времени. Однако на данные, выводимые функциями даты, влияет параметр языка.

Не применимо

Не применимо

Функции, проверяющие значения даты и времени

Функция

Синтаксис

Возвращаемое значение

Тип возвращаемых данных

Детерминизм

ISDATE

ISDATE ( expression )

Определяет, является ли входное выражение типа datetime или smalldatetime допустимым значением даты или времени.

int

Функция ISDATE детерминирована, только если используется совместно с функцией CONVERT и если заданный параметр стиля CONVERT не равен 0, 100, 9 или 109.

Дата и время — см. также

Раздел

Описание

Использование данных даты и времени

Предоставляет сведения и примеры, относящиеся к типам данных и функциям даты и времени.

Функции CAST и CONVERT (Transact-SQL)

Предоставляет сведения о преобразовании значений даты и времени в строковые литералы и обратно, а также в другие форматы даты и времени.

Написание инструкций Transact-SQL, адаптированных к международному использованию

Предоставляет рекомендации относительно переносимости баз данных и приложений баз данных, использующих инструкции Transact-SQL, с одного языка на другой или в многоязычную среду.

Скалярные функции ODBC (Transact-SQL)

Предоставляет сведения о скалярных функциях ODBC, которые могут использоваться в инструкциях Transact-SQL. Это включает функции даты и времени ODBC.

Сопоставление типов данных в распределенных запросах

Предоставляет сведения о влиянии типов данных даты и времени на распределенные запросы между серверами, имеющими разные версии SQL Server или разные поставщики.