Типы данных и функции даты и времени (Transact-SQL)
Применимо к: SQL Server Azure SQL DatabaseУправляемый экземпляр SQL AzureAzure Synapse Analytics
В разделах этой статьи представлен обзор всех типов данных и функций даты и времени Transact-SQL.
- Типы данных даты и времени
- Функции даты и времени
- Функции, возвращающие значения системной даты и времени
- Функции, возвращающие компоненты даты и времени
- Функции, возвращающие значения даты и времени из их компонентов
- Функции, возвращающие значения разности даты и времени
- Функции, изменяющие значения даты и времени
- Функции, устанавливающие или возвращающие функции формата сеанса
- Функции, проверяющие значения даты и времени
- Дата и время — см. также
Типы данных даты и времени
Типы данных даты и времени Transact-SQL перечислены в следующей таблице:
Тип данных | Формат | Диапазон | Точность | Объем памяти (в байтах) | Определяемая пользователем точность в долях секунды | Смещение часового пояса |
---|---|---|---|---|---|---|
time | чч:мм:сс[.ннннннн] | От 00:00:00.0000000 до 23:59:59.9999999 | 100 наносекунд | от 3 до 5 | Да | Нет |
date | ГГГГ-ММ-ДД | От 0001-01-01 до 31.12.99 | 1 день | 3 | Нет | Нет |
smalldatetime | ГГГГ-ММ-ДД чч:мм:сс | От 01.01.1900 до 06.06.2079 | 1 минута | 4 | нет | Нет |
datetime | ГГГГ-ММ-ДД чч:мм:сс[.ннн] | От 01.01.1753 до 31.12.9999 | 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 | Да | Да |
Примечание
Тип данных Transact-SQL rowversion не относится к типам данных даты и времени. Тип данных timestamp является устаревшим синонимом rowversion.
Функции даты и времени
В следующих таблицах приводятся функции даты и времени Transact-SQL. Дополнительные сведения о детерминизме см. в статье Детерминированные и недетерминированные функции.
Функции, возвращающие значения системной даты и времени
Transact-SQL наследует все значения системной даты и времени от операционной системы компьютера, на котором работает экземпляр SQL Server.
Высокоточные функции системной даты и времени
Начиная с SQL Server 2008 (10.0.x) ядро СУБД получает значения даты и времени с помощью API Windows GetSystemTimeAsFileTime(). Точность зависит от физического оборудования и версии 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 | Возвращает значение типа datetime, которое содержит дату и время компьютера, на котором запущен экземпляр SQL Server. Возвращаемое значение не содержит смещение часового пояса. | datetime | Недетерминированная |
GETDATE | GETDATE ( ) | Возвращает значение типа datetime, которое содержит дату и время компьютера, на котором запущен экземпляр SQL Server. Возвращаемое значение не содержит смещение часового пояса. | datetime | Недетерминированная |
GETUTCDATE | GETUTCDATE ( ) | Возвращает значение типа datetime, которое содержит дату и время компьютера, на котором запущен экземпляр SQL Server. Функция возвращает значения даты и времени в формате UTC. | datetime | Недетерминированная |
Функции, возвращающие компоненты даты и времени
Функция | Синтаксис | Возвращаемое значение | Тип возвращаемых данных | Детерминизм |
---|---|---|---|---|
DATE_BUCKET | DATE_BUCKET ( datepart, number, date, origin ) | Возвращает значение даты и времени, соответствующее началу каждого контейнера даты и времени, из временной метки, определенной параметром origin или исходным значением по умолчанию 1900-01-01 00:00:00.000 , если параметр orgin не указан. |
Тип возвращаемого значения зависит от типа аргумента, переданного в параметре date. | Недетерминированная |
DATENAME | DATENAME ( datepart, date ) | Возвращает строку символов, представляющую указанную часть datepart заданного типа date. | nvarchar | Недетерминированная |
DATEPART | DATEPART ( datepart, date ) | Возвращает целое число, представляющее указанную часть datepart заданного типа date. | int | Недетерминированная |
DATETRUNC | DATETRUNC ( datepart, date ) | Эта функция возвращает входную дату date, усеченную до указанной части datepart. | Тип возвращаемого значения зависит от типа аргумента, переданного в параметре date. | Недетерминированная |
DAY | DAY ( date ) | Возвращает целое число, представляющее часть дня указанного типа date. | int | Детерминированный |
MONTH | MONTH ( date ) | Возвращает целое число, представляющее часть месяца указанного типа date. | int | Детерминированный |
YEAR | YEAR ( date ) | Возвращает целое число, представляющее часть года указанного типа date. | int | Детерминированный |
Функции, возвращающие значения даты и времени из их компонентов
Функция | Синтаксис | Возвращаемое значение | Тип возвращаемых данных | Детерминизм |
---|---|---|---|---|
DATEFROMPARTS | DATEFROMPARTS ( year, month, day ) | Возвращает значение date, соответствующее указанному числу, месяцу и году. | date | Детерминированный |
DATETIME2FROMPARTS | DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision) | Возвращает значение datetime2, соответствующее указанной дате и времени с заданной точностью. | datetime2(precision) | Детерминированный |
DATETIMEFROMPARTS | DATETIMEFROMPARTS ( year, month, day, hour, minute, seconds, milliseconds) | Возвращает значение datetime, соответствующее указанной дате и времени. | datetime | Детерминированный |
DATETIMEOFFSETFROMPARTS | DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision) | Возвращает значение datetimeoffset для указанных даты и времени с указанными смещением и точностью. | datetimeoffset(precision) | Детерминированный |
SMALLDATETIMEFROMPARTS | SMALLDATETIMEFROMPARTS ( year, month, day, hour, minute ) | Возвращает значение smalldatetime, соответствующее указанной дате и времени. | smalldatetime | Детерминированный |
TIMEFROMPARTS | TIMEFROMPARTS ( hour, minute, seconds, fractions, precision ) | Возвращает значение time, соответствующее указанному времени с заданной точностью. | time(precision) | Детерминированный |
Функции, возвращающие значения разности даты и времени
Функция | Синтаксис | Возвращаемое значение | Тип возвращаемых данных | Детерминизм |
---|---|---|---|---|
DATEDIFF | DATEDIFF ( datepart, startdate, enddate ) | Возвращает количество границ даты или времени datepart, пересекающихся между двумя указанными датами. | int | Детерминированный |
DATEDIFF_BIG | DATEDIFF_BIG ( datepart, startdate, enddate ) | Возвращает количество границ даты или времени datepart, пересекающихся между двумя указанными датами. | bigint | Детерминированный |
Функции, изменяющие значения даты и времени
Функция | Синтаксис | Возвращаемое значение | Тип возвращаемых данных | Детерминизм |
---|---|---|---|---|
DATEADD | DATEADD (datepart, number, date ) | Возвращает новое значение datetime, добавляя интервал к указанной части datepart заданной даты date. | Тип данных аргумента date | Детерминированный |
EOMONTH | EOMONTH ( start_date [, month_to_add ] ) | Возвращает последний день месяца, содержащего указанную дату, с необязательным смещением. | Тип возвращаемого значения — это тип аргумента start_date или тип данных date. | Детерминированный |
SWITCHOFFSET | SWITCHOFFSET (DATETIMEOFFSET, time_zone) | Функция SWITCHOFFSET изменяет смещение часового пояса для значения DATETIMEOFFSET и сохраняет значение UTC. | Значение datetimeoffset с точностью в долях секунд, заданной в аргументе DATETIMEOFFSET | Детерминированный |
TODATETIMEOFFSET | TODATETIMEOFFSET (expression, time_zone) | TODATETIMEOFFSET преобразует значение типа datetime2 в значение типа datetimeoffset. Функция TODATETIMEOFFSET преобразует значение 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' ] | Возвращает сведения о формате даты всех поддерживаемых языков. sp_helplanguage не является хранимой процедурой даты или времени. Однако на данные, выводимые функциями даты, влияет параметр языка. | Неприменимо | Неприменимо |
Функции, проверяющие значения даты и времени
Функция | Синтаксис | Возвращаемое значение | Тип возвращаемых данных | Детерминизм |
---|---|---|---|---|
ISDATE | ISDATE ( expression ) | Определяет, является ли входное выражение типа datetime или smalldatetime допустимым значением даты или времени. | int | Функция ISDATE детерминирована, только если используется совместно с функцией CONVERT и если заданный параметр стиля CONVERT не равен 0, 100, 9 или 109. |
Дата и время — см. также
Статья | Описание |
---|---|
FORMAT | Возвращает значение в указанных формате и культуре (не обязательно). Для выполнения форматирования значения даты, времени и чисел с учетом локали в виде строк используется функция FORMAT. |
Функции CAST и CONVERT (Transact-SQL) | Предоставляет сведения о преобразовании значений даты и времени в строковые литералы и обратно, а также в другие форматы даты и времени. |
Написание инструкций Transact-SQL, адаптированных к международному использованию | Предоставляет рекомендации относительно переносимости баз данных и приложений баз данных, использующих инструкции Transact-SQL, с одного языка на другой или в многоязычную среду. |
Скалярные функции ODBC (Transact-SQL) | Предоставляет сведения о скалярных функциях ODBC, которые могут использоваться в инструкциях Transact-SQL. К ним относятся функции даты и времени ODBC. |
AT TIME ZONE (Transact-SQL) | Обеспечивает преобразование часовых поясов. |
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по