Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server
База данных SQL Azure
Управляемый экземпляр SQL Azure
Azure Synapse Analytics
В разделах этой статьи представлен обзор всех типов данных и функций даты и времени Transact-SQL.
- Типы данных даты и времени
- Функции даты и времени
- Функции, возвращающие значения системной даты и времени
- Функции, возвращающие компоненты даты и времени
- Функции, возвращающие значения даты и времени из их компонентов
- Функции, возвращающие значения разности даты и времени
- Функции, изменяющие значения даты и времени
- Функции, устанавливающие или возвращающие функции формата сеанса
- Функции, проверяющие значения даты и времени
- Дата и время — см. также
Типы данных даты и времени
Типы данных даты и времени Transact-SQL перечислены в следующей таблице:
Тип данных | Формат | Диапазон | Правильность | Объем памяти (в байтах) | Определяемая пользователем точность в долях секунды | Смещение часового пояса |
---|---|---|---|---|---|---|
time | HH:mm:ss[.nnnnnnnnn] | От 00:00:00.0000000 до 23:59:59.9999999 | 100 наносекунд | от 3 до 5 | Да | Нет |
date | гггг-ММ-дд | От 0001-01-01 до 31.12.99 | 1 день | 3 | No | No |
smalldatetime | гггг-ММ-дд ЧЧ:мм:сс | От 01.01.1900 до 06.06.2079 | 1 минута | 4 | Нет | No |
datetime | гггг-ММ-дд HH:mm:ss[.nnn] | От 01.01.1753 до 31.12.9999 | 0,00333 секунды | 8 | No | No |
datetime2 | гггг-ММ-дд HH:mm:ss[.nnnnnnnnn] | От 0001-01-01 00:00:00.0000000 до 9999-12-31 23:59:59.9999999 | 100 наносекунд | От 6 до 8 | Да | Нет |
datetimeoffset | гггг-ММ-дд HH:mm:ss[.nnnnn] [+|-]HH:mm | От 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. Дополнительные сведения о детерминизме см. в статье Детерминированные и недетерминированные функции.
Функции, возвращающие значения системной даты и времени
Transact-SQL наследует все значения системной даты и времени от операционной системы компьютера, на котором работает экземпляр SQL Server.
Высокоточные функции системной даты и времени
Так как SQL Server 2008 (10.0.x) ядро СУБД получает значения даты и времени с помощью API Windows GetSystemTimeAsFileTime(). Точность зависит от оборудования компьютера и версии Windows, в которой выполняется экземпляр SQL Server. Точность возвращаемых значений этого API-интерфейса задана равной 100 нс. Точность может быть определена с помощью метода GetSystemTimeAdjustment() API-интерфейса Windows.
Function | Синтаксис | Возвращаемое значение | Тип возвращаемых данных | Детерминизм |
---|---|---|---|---|
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) | Недетерминированная |
Функции системной даты и времени меньшей точности
Function | Синтаксис | Возвращаемое значение | Тип возвращаемых данных | Детерминизм |
---|---|---|---|---|
CURRENT_TIMESTAMP | CURRENT_TIMESTAMP | Возвращает значение даты и времени, содержащее дату и время компьютера, на котором выполняется экземпляр SQL Server. Возвращаемое значение не содержит смещение часового пояса. | datetime | Недетерминированная |
GETDATE | GETDATE ( ) | Возвращает значение даты и времени, содержащее дату и время компьютера, на котором выполняется экземпляр SQL Server. Возвращаемое значение не содержит смещение часового пояса. | datetime | Недетерминированная |
GETUTCDATE | GETUTCDATE ( ) | Возвращает значение даты и времени, содержащее дату и время компьютера, на котором выполняется экземпляр SQL Server. Функция возвращает значения даты и времени в формате UTC. | datetime | Недетерминированная |
CURRENT_DATE | CURRENT_DATE | Возвращает значение даты, содержащее только дату компьютера, на котором выполняется экземпляр ядро СУБД. Возвращаемое значение не включает время и смещение часового пояса. | date | Недетерминированная |
Функции, возвращающие компоненты даты и времени
Function | Синтаксис | Возвращаемое значение | Тип возвращаемых данных | Детерминизм |
---|---|---|---|---|
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 | Детерминированное |
Функции, возвращающие значения даты и времени из их компонентов
Function | Синтаксис | Возвращаемое значение | Тип возвращаемых данных | Детерминизм |
---|---|---|---|---|
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) | Детерминированное |
Функции, возвращающие значения разности даты и времени
Function | Синтаксис | Возвращаемое значение | Тип возвращаемых данных | Детерминизм |
---|---|---|---|---|
DATEDIFF | DATEDIFF ( datepart, startdate, enddate ) | Возвращает количество границ даты или времени datepart, пересекающихся между двумя указанными датами. | int | Детерминированное |
DATEDIFF_BIG | DATEDIFF_BIG ( datepart, startdate, enddate ) | Возвращает количество границ даты или времени datepart, пересекающихся между двумя указанными датами. | bigint | Детерминированное |
Функции, изменяющие значения даты и времени
Function | Синтаксис | Возвращаемое значение | Тип возвращаемых данных | Детерминизм |
---|---|---|---|---|
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 | Детерминированное |
Функции, устанавливающие или возвращающие функции формата сеанса
Function | Синтаксис | Возвращаемое значение | Тип возвращаемых данных | Детерминизм |
---|---|---|---|---|
@@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 не является хранимой процедурой даты или времени. Однако на данные, выводимые функциями даты, влияет параметр языка. |
Неприменимо | Неприменимо |
Функции, проверяющие значения даты и времени
Function | Синтаксис | Возвращаемое значение | Тип возвращаемых данных | Детерминизм |
---|---|---|---|---|
ISDATE | ISDATE ( expression ) | Определяет, является ли входное выражение типа datetime или smalldatetime допустимым значением даты или времени. | int | Функция ISDATE детерминирована, только если используется совместно с функцией CONVERT и если заданный параметр стиля CONVERT не равен 0, 100, 9 или 109. |
Дата и время — см. также
Статья | Описание |
---|---|
FORMAT | Возвращает значение в указанных формате и культуре (не обязательно). Для выполнения форматирования значения даты, времени и чисел с учетом локали в виде строк используется функция FORMAT. |
CAST и CONVERT | Предоставляет сведения о преобразовании значений даты и времени в строковые литералы и обратно, а также в другие форматы даты и времени. |
Написание инструкций Transact-SQL, адаптированных к международному использованию | Предоставляет рекомендации относительно переносимости баз данных и приложений баз данных, использующих инструкции Transact-SQL, с одного языка на другой или в многоязычную среду. |
Скалярные функции ODBC | Предоставляет сведения о скалярных функциях ODBC, которые могут использоваться в инструкциях Transact-SQL. Включает функции даты и времени ODBC. |
AT TIME ZONE | Обеспечивает преобразование часовых поясов. |