Функции даты и времени (Transact-SQL)
В следующих подразделах данного раздела содержится обзор всех типов и функций даты и времени в Transact-SQL. Сведения и примеры, общие для типов данных и функций даты и времени, см. в разделе Использование данных даты и времени.
Типы данных даты и времени
Функции даты и времени
Функции, получающие значения системной даты и времени
Функции, получающие компоненты даты и времени
Функции, получающие разность даты и времени
Функции, изменяющие значения даты и времени
Функции, устанавливающие или получающие формат сеанса
Функции, проверяющие значения даты и времени
Дата и время — см. также
Типы данных даты и времени
Типы данных даты и времени Transact-SQL перечислены в следующей таблице.
Тип данных |
Format |
Диапазон |
Точность |
Объем памяти (в байтах) |
Определяемая пользователем точность в долях секунды |
Смещение часового пояса |
---|---|---|---|---|---|---|
чч:мм:сс[.ннннннн] |
От 00:00:00.0000000 до 23:59:59.9999999 |
100 наносекунд |
От 3 до 5 |
Да |
Нет |
|
ГГГГ-ММ-ДД |
От 0001-01-01 до 9999-12-31 |
1 день |
3 |
Нет |
Нет |
|
ГГГГ-ММ-ДД чч:мм:сс |
От 01.01.1900 до 06.06.2079 |
1 минута |
4 |
Нет |
Нет |
|
ГГГГ-ММ-ДД чч:мм:сс[.ннн] |
От 01.01.1753 до 9999-12-31 |
0,00333 секунда |
8 |
Нет |
Нет |
|
ГГГГ-ММ-ДД чч:мм:сс[.ннннннн] |
От 0001-01-01 00:00:00.0000000 до 9999-12-31 23:59:59.9999999 |
100 наносекунд |
От 6 до 8 |
Да |
Нет |
|
ГГГГ-ММ-ДД чч:мм:сс[.ннннннн] [+|-]чч:мм |
От 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 () |
Возвращает значение типа datetime2(7), которое содержит дату и время компьютера, на котором запущен экземпляр SQL Server. Смещение часового пояса не включается. |
datetime2(7) |
Недетерминированная |
|
SYSDATETIMEOFFSET ( ) |
Возвращает значение типа datetimeoffset(7), которое содержит дату и время компьютера, на котором запущен экземпляр SQL Server. Смещение часового пояса включается. |
datetimeoffset(7) |
Недетерминированная |
|
SYSUTCDATETIME ( ) |
Возвращает значение типа datetime2(7), которое содержит дату и время компьютера, на котором запущен экземпляр SQL Server. Возвращаемые дата и время отображаются в формате UTC. |
datetime2(7) |
Недетерминированная |
Функции системной даты и времени меньшей точности
Функция |
Синтаксис |
Возвращаемое значение |
Тип возвращаемых данных |
Детерминизм |
---|---|---|---|---|
CURRENT_TIMESTAMP |
Возвращает значение типа datetime2(7), которое содержит дату и время компьютера, на котором запущен экземпляр SQL Server. Смещение часового пояса не включается. |
datetime |
Недетерминированная |
|
GETDATE ( ) |
Возвращает значение типа datetime2(7), которое содержит дату и время компьютера, на котором запущен экземпляр SQL Server. Смещение часового пояса не включается. |
datetime |
Недетерминированная |
|
GETUTCDATE ( ) |
Возвращает значение типа datetime2(7), которое содержит дату и время компьютера, на котором запущен экземпляр SQL Server. Возвращаемые дата и время отображаются в формате UTC. |
datetime |
Недетерминированная |
Функции, получающие компоненты даты и времени
Функция |
Синтаксис |
Возвращаемое значение |
Тип возвращаемых данных |
Детерминизм |
---|---|---|---|---|
DATENAME ( datepart, date ) |
Возвращает строку символов, представляющую указанную часть datepart заданной даты. |
nvarchar |
Недетерминированная |
|
DATEPART ( datepart, date ) |
Возвращает целое число, представляющее указанный компонент datepart указанной даты date. |
int |
Недетерминированная |
|
DAY ( date ) |
Возвращает целое число, представляющее день указанной даты date. |
int |
Детерминированное |
|
MONTH ( date ) |
Возвращает целое число, представляющее месяц указанной даты date. |
int |
Детерминированное |
|
YEAR ( date ) |
Возвращает целое число, представляющее год указанной даты date. |
int |
Детерминированное |
Функции, получающие разность даты и времени
Функция |
Синтаксис |
Возвращаемое значение |
Тип возвращаемых данных |
Детерминизм |
---|---|---|---|---|
DATEDIFF ( datepart, startdate , enddate ) |
Возвращает количество границ datepart даты или времени, пересекающихся между двумя указанными датами. |
int |
Детерминированное |
Функции, изменяющие значения даты и времени
Функция |
Синтаксис |
Возвращаемое значение |
Тип возвращаемых данных |
Детерминизм |
---|---|---|---|---|
DATEADD (datepart, number , date ) |
Возвращает новое значение datetime, добавляя интервал к указанной части datepart заданной даты date. |
Тип данных аргумента date |
Детерминированное |
|
SWITCHOFFSET (DATETIMEOFFSET , time_zone) |
SWITCHOFFSET изменяет смещение часового пояса для значения DATETIMEOFFSET и сохраняет значение UTC. |
datetimeoffset с точностью в долях секунд DATETIMEOFFSET |
Детерминированное |
|
TODATETIMEOFFSET (expression , time_zone) |
TODATETIMEOFFSET преобразует значение типа datetime2 в значение типа datetimeoffset. Значение datetime2 преобразуется в местное время для указанного time_zone. |
datetimeoffset с точностью в долях секунд аргумента datetime |
Детерминированное |
Функции, устанавливающие или получающие формат сеанса
Функция |
Синтаксис |
Возвращаемое значение |
Тип возвращаемых данных |
Детерминизм |
---|---|---|---|---|
@@DATEFIRST |
Возвращает текущее значение параметра SET DATEFIRST для сеанса. |
tinyint |
Недетерминированная |
|
SET DATEFIRST { number | @number_var } |
Устанавливает первый день недели в виде числа от 1 до 7. |
Не применимо |
Не применимо |
|
SET DATEFORMAT { format | @format_var } |
Задает порядок составляющих даты (месяц/день/год) для ввода данных типа datetime или smalldatetime. |
Не применимо |
Не применимо |
|
@@LANGUAGE |
Возвращает название используемого в данный момент языка. @@LANGUAGE не является функцией даты или времени. Однако на данные, выводимые функциями даты, могут повлиять настройки языка. |
Не применимо |
Не применимо |
|
SET LANGUAGE { [ N ] 'language' | @language_var } |
Устанавливает языковую среду сеанса и системных сообщений. SET LANGUAGE не является функцией даты или времени. Однако на данные, выводимые функциями даты, влияет параметр языка. |
Не применимо |
Не применимо |
|
sp_helplanguage [ [ @language = ] 'language' ] |
Возвращает сведения о форматах даты во всех поддерживаемых языках. sp_helplanguage — это не хранимая процедура даты или времени. Однако на данные, выводимые функциями даты, влияет параметр языка. |
Не применимо |
Не применимо |
Функции, проверяющие значения даты и времени
Функция |
Синтаксис |
Возвращаемое значение |
Тип возвращаемых данных |
Детерминизм |
---|---|---|---|---|
ISDATE ( expression ) |
Определяет, является ли входное выражение типа datetime или smalldatetime допустимым значением даты или времени. |
int |
Функция ISDATE детерминирована, только если используется совместно с функцией CONVERT и если заданный параметр стиля CONVERT не равен 0, 100, 9 или 109. |
Дата и время — см. также
Раздел |
Описание |
---|---|
Предоставляет сведения и примеры, относящиеся к типам данных и функциям даты и времени. |
|
Предоставляет сведения о преобразовании значений даты и времени в строковые литералы и обратно, а также в другие форматы даты и времени. |
|
Написание инструкций Transact-SQL, адаптированных к международному использованию |
Предоставляет рекомендации относительно переносимости баз данных и приложений баз данных, использующих инструкции Transact-SQL, с одного языка на другой или в многоязычную среду. |
Предоставляет сведения о скалярных функциях ODBC, которые могут использоваться в инструкциях Transact-SQL. Это включает функции даты и времени ODBC. |
|
Предоставляет сведения о влиянии типов данных даты и времени на распределенные запросы между серверами, имеющими разные версии SQL Server или разные поставщики. |