Типы данных и функции даты и времени (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 до 31.12.9999 |
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 |
Да |
Да |
Примечание |
---|
Тип данных Transact-SQL rowversion не относится к типам данных даты и времени. timestamp является устаревшим синонимом rowversion. |
Функции даты и времени
Функции даты и времени Transact-SQL перечислены в следующих таблицах. Дополнительные сведения о детерминизме см. в разделе Детерминированные и недетерминированные функции.
Функции, получающие значения системной даты и времени
Все значения системной даты и времени наследуется от операционной системы компьютера, на котором работает экземпляр SQL Server.
Высокоточные функции системной даты и времени
SQL Server 2012 получает значения даты и времени с помощью функции 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 |
Возвращает значение типа datetime, которое содержит дату и время компьютера, на котором запущен экземпляр SQL Server. Смещение часового пояса не включается. |
datetime |
Недетерминированная |
|
GETDATE ( ) |
Возвращает значение типа datetime, которое содержит дату и время компьютера, на котором запущен экземпляр SQL Server. Смещение часового пояса не включается. |
datetime |
Недетерминированная |
|
GETUTCDATE ( ) |
Возвращает значение типа datetime, которое содержит дату и время компьютера, на котором запущен экземпляр 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 |
Детерминированная |
Функции, получающие значения даты и времени из их компонентов
Функция |
Синтаксис |
Возвращаемое значение |
Тип возвращаемых данных |
Детерминизм |
---|---|---|---|---|
DATEFROMPARTS (year, month, day) |
Возвращает значение date, соответствующее указанному числу, месяцу и году. |
date |
Детерминированная |
|
DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision ) |
Возвращает значение datetime2, соответствующее указанной дате и времени с заданной точностью. |
datetime2 ( precision ) |
Детерминированная |
|
DATETIMEFROMPARTS (year, month, day, hour, minute, seconds, milliseconds) |
Возвращает значение datetime, соответствующее указанной дате и времени. |
datetime |
Детерминированная |
|
DATETIMEOFFSETFROMPARTS (year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision) |
Возвращает значение datetimeoffset для указанных даты и времени с указанными смещением и точностью. |
datetime ( precision ) |
Детерминированная |
|
SMALLDATETIMEFROMPARTS (year, month, day, hour, minute) |
Возвращает значение smalldatetime, соответствующее указанной дате и времени. |
smalldatetime |
Детерминированная |
|
TIMEFROMPARTS (hour, minute, seconds, fractions, precision) |
Возвращает значение time, соответствующее указанному времени с установленной точностью. |
time ( precision ) |
Детерминированная |
Функции, получающие разность даты и времени
Функция |
Синтаксис |
Возвращаемое значение |
Тип возвращаемых данных |
Детерминизм |
---|---|---|---|---|
DATEDIFF ( datepart, startdate , enddate ) |
Возвращает количество границ datepart даты или времени, пересекающихся между двумя указанными датами. |
int |
Детерминированное |
Функции, изменяющие значения даты и времени
Функция |
Синтаксис |
Возвращаемое значение |
Тип возвращаемых данных |
Детерминизм |
---|---|---|---|---|
DATEADD (datepart, number , date ) |
Возвращает новое значение datetime, добавляя интервал к указанной части datepart заданной даты date. |
Тип данных аргумента date |
Детерминированная |
|
EOMONTH (start_date [, month_to_add ]) |
Возвращает последний день месяца, содержащего указанную дату, с необязательным смещением. |
Возвращаемые данные имеют тип start_date или datetime2(7). |
Детерминированная |
|
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. |