Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Область применения:SQL Server
База данных SQL Azure
Управляемый экземпляр SQL Azure
Azure Synapse Analytics
База данных SQL в Microsoft Fabric
В разделах этой статьи представлен обзор всех типов данных и функций даты и времени 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 | Нет | Нет |
| smalldatetime | гггг-ММ-дд ЧЧ:мм:сс | От 01.01.1900 до 06.06.2079 | 1 минута | 4 | Нет | Нет |
| datetime | гггг-ММ-дд HH:mm:ss[.nnn] | От 01.01.1753 до 31.12.9999 | 0,00333 секунды | 8 | Нет | Нет |
| 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 | SYSDATE timeoffset ( ) | Возвращает значение 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 ( дата, номер,дата, происхождение ) | Возвращает значение даты и времени, соответствующее началу каждого контейнера даты и времени, из временной метки, определенной параметром origin или исходным значением по умолчанию 1900-01-01 00:00:00.000, если параметр orgin не указан. |
Тип возвращаемого значения зависит от типа аргумента, переданного в параметре date. | Недетерминированная |
| DATENAME | НАЗВАНИЕ ДАТЫ (дата,дата) | Возвращает строку символов, представляющую указанную часть datepart заданного типа date. | nvarchar | Недетерминированная |
| DATEPART | DATEPART ( datepart, date ) | Возвращает целое число, представляющее указанную часть datepart заданного типа date. | int | Недетерминированная |
| DATETRUNC | DATETRUNC (дата,дата) | Эта функция возвращает входную дату date, усеченную до указанной части datepart. | Тип возвращаемого значения зависит от типа аргумента, переданного в параметре date. | Недетерминированная |
| DAY | ДЕНЬ ( дата ) | Возвращает целое число, представляющее часть дня указанного типа date. | int | Детерминированное |
| MONTH | МЕСЯЦ ( дата ) | Возвращает целое число, представляющее часть месяца указанного типа date. | int | Детерминированное |
| YEAR | ГОД ( дата ) | Возвращает целое число, представляющее часть года указанного типа date. | int | Детерминированное |
Функции, возвращающие значения даты и времени из их компонентов
| Function | Синтаксис | Возвращаемое значение | Тип возвращаемых данных | Детерминизм |
|---|---|---|---|---|
| DATEFROMPARTS | DATEFROMPARTS ( год, месяц, день ) | Возвращает значение 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 ( год, месяц, день, час, минута ) | Возвращает значение smalldatetime, соответствующее указанной дате и времени. | smalldatetime | Детерминированное |
| TIMEFROMPARTS | ВРЕМЯ от частей ( час, минута, секунды, дроби, точность ) | Возвращает значение time, соответствующее указанному времени с заданной точностью. | time(precision) | Детерминированное |
Функции, возвращающие значения разности даты и времени
| Function | Синтаксис | Возвращаемое значение | Тип возвращаемых данных | Детерминизм |
|---|---|---|---|---|
| DATEDIFF | DATEDIFF ( дата,дата начала, конечная дата ) | Возвращает количество границ даты или времени datepart, пересекающихся между двумя указанными датами. | int | Детерминированное |
| DATEDIFF_BIG | DATEDIFF_BIG ( дата,дата начала, конечная дата ) | Возвращает количество границ даты или времени datepart, пересекающихся между двумя указанными датами. | bigint | Детерминированное |
Функции, изменяющие значения даты и времени
| Function | Синтаксис | Возвращаемое значение | Тип возвращаемых данных | Детерминизм |
|---|---|---|---|---|
| DATEADD | DATEADD (дата,номер, дата ) | Возвращает новое значение 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 { number | @number_var } | Устанавливает первый день недели в виде числа от 1 до 7. | Неприменимо | Неприменимо |
| ФОРМАТ УСТАНОВКИ ДАТЫ | SET DATEFORMAT { format | @format_var } | Задает порядок составляющих даты (месяц/день/год) для ввода данных типа datetime или smalldatetime. | Неприменимо | Неприменимо |
| @@LANGUAGE | @@LANGUAGE | Возвращает название использующегося в настоящий момент языка. @@LANGUAGE не является функцией даты или времени. Однако на данные, выводимые функциями даты, могут повлиять настройки языка. | Неприменимо | Неприменимо |
| ЯЗЫК МНОЖЕСТВ | SET LANGUAGE { [ N ] 'language' | @language_var } | Устанавливает языковую среду сеанса и системных сообщений. SET LANGUAGE не является функцией даты или времени. Однако на данные, выводимые функциями даты, влияет параметр языка. | Неприменимо | Неприменимо |
| sp_helplanguage | sp_helplanguage [ @language = ] "язык" ] | Возвращает сведения о формате даты всех поддерживаемых языков.
sp_helplanguage не является хранимой процедурой даты или времени. Однако на данные, выводимые функциями даты, влияет параметр языка. |
Неприменимо | Неприменимо |
Функции, проверяющие значения даты и времени
| Function | Синтаксис | Возвращаемое значение | Тип возвращаемых данных | Детерминизм |
|---|---|---|---|---|
| ISDATE | ISDATE ( выражение ) | Определяет, является ли входное выражение типа 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 | Обеспечивает преобразование часовых поясов. |