Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: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) ядро СУБД получает значения даты и времени с помощью GetSystemTimeAsFileTime() API Windows. Точность зависит от оборудования компьютера и версии Windows, в которой выполняется экземпляр SQL Server. Точность возвращаемых значений этого API-интерфейса задана равной 100 нс.
GetSystemTimeAdjustment() Используйте API Windows для определения точности.
| Function | Синтаксис | Возвращаемое значение | Тип возвращаемых данных | Детерминизм |
|---|---|---|---|---|
| SYSDATETIME | SYSDATETIME() |
Функция SYSDATETIME возвращает значение datetime2(7), содержащее дату и время компьютера, на котором выполняется экземпляр SQL Server. Возвращаемое значение не содержит смещение часового пояса. |
datetime2(7) | Недетерминированная |
| SYSDATETIMEOFFSET | SYSDATETIMEOFFSET () |
Функция SYSDATETIMEOFFSET возвращает значение datetimeoffset(7), содержащее дату и время компьютера, на котором выполняется экземпляр SQL Server. Возвращаемое значение содержит смещение часового пояса. |
datetimeoffset(7) | Недетерминированная |
| SYSUTCDATETIME | SYSUTCDATETIME () |
Функция SYSUTCDATETIME возвращает значение datetime2(7), содержащее дату и время компьютера, на котором выполняется экземпляр SQL Server.
SYSUTCDATETIME возвращает значения даты и времени в формате UTC (согласованное универсальное время). |
datetime2(7) | Недетерминированная |
Функции системной даты и времени меньшей точности
| Function | Синтаксис | Возвращаемое значение | Тип возвращаемых данных | Детерминизм |
|---|---|---|---|---|
| CURRENT_TIMESTAMP | CURRENT_TIMESTAMP |
Функция CURRENT_TIMESTAMP возвращает значение datetime , содержащее дату и время компьютера, на котором выполняется экземпляр SQL Server. Возвращаемое значение не содержит смещение часового пояса. |
datetime | Недетерминированная |
| GETDATE | GETDATE() |
Функция GETDATE возвращает значение datetime , содержащее дату и время компьютера, на котором выполняется экземпляр SQL Server. Возвращаемое значение не содержит смещение часового пояса. |
datetime | Недетерминированная |
| GETUTCDATE | GETUTCDATE() |
Функция GETUTCDATE возвращает значение datetime , содержащее дату и время компьютера, на котором выполняется экземпляр SQL Server. Функция GETUTCDATE возвращает значения даты и времени в формате UTC (согласованное универсальное время). |
datetime | Недетерминированная |
| CURRENT_DATE | CURRENT_DATE |
Функция CURRENT_DATE возвращает значение даты , содержащее только дату компьютера, на котором выполняется экземпляр ядра СУБД. Возвращаемое значение не включает время и смещение часового пояса. |
date | Недетерминированная |
Функции, возвращающие компоненты даты и времени
| Function | Синтаксис | Возвращаемое значение | Тип возвращаемых данных | Детерминизм |
|---|---|---|---|---|
| DATE_BUCKET | DATE_BUCKET ( <datepart>, <number>, <date>, <origin>) |
Функция DATE_BUCKET возвращает значение, соответствующее началу каждого контейнера даты и времени из метки времени, определенной параметром источника, или значение 1900-01-01 00:00:00.000 источника по умолчанию, если параметр источника не указан. |
Тип возвращаемого значения зависит от типа аргумента, переданного в параметре date. | Недетерминированная |
| DATENAME | DATENAME ( <datepart>, <date> ) |
Функция DATENAME возвращает символьную строку, представляющую указанную часть даты указанной даты. |
nvarchar | Недетерминированная |
| DATEPART | DATEPART ( <datepart>, <date> ) |
Функция DATEPART возвращает целое число, представляющее указанную часть даты указанной даты. |
int | Недетерминированная |
| DATETRUNC | DATETRUNC ( <datepart>, <date> ) |
Функция DATETRUNC возвращает входную дату , усеченную до указанной части даты. |
Тип возвращаемого значения зависит от типа аргумента, переданного в параметре date. | Недетерминированная |
| DAY | DAY ( <date> ) |
Функция DAY возвращает целое число, представляющее часть дня указанной даты. |
int | Детерминированное |
| MONTH | MONTH ( <date> ) |
Функция MONTH возвращает целое число, представляющее часть месяца указанной даты. |
int | Детерминированное |
| YEAR | YEAR ( <date> ) |
Функция YEAR возвращает целое число, представляющее часть года указанной даты. |
int | Детерминированное |
Функции, возвращающие значения даты и времени из их компонентов
| Function | Синтаксис | Возвращаемое значение | Тип возвращаемых данных | Детерминизм |
|---|---|---|---|---|
| DATEFROMPARTS | DATEFROMPARTS ( <year>, <month>, <day> ) |
Функция DATEFROMPARTS возвращает значение даты для указанного года, месяца и дня. |
date | Детерминированное |
| DATETIME2FROMPARTS | DATETIME2FROMPARTS ( <year>, <month>, <day>, <hour>, <minute>, <seconds>, <fractions>, <precision> ) |
Функция DATETIME2FROMPARTS возвращает значение datetime2 для указанной даты и времени с указанной точностью. |
datetime2(precision) | Детерминированное |
| DATETIMEFROMPARTS | DATETIMEFROMPARTS ( <year>, <month>, <day>, <hour>, <minute>, <seconds>, <milliseconds> ) |
Функция DATETIMEFROMPARTS возвращает значение даты и времени для указанной даты и времени. |
datetime | Детерминированное |
| DATETIMEOFFSETFROMPARTS | DATETIMEOFFSETFROMPARTS ( <year>, <month>, <day>, <hour>, <minute>, <seconds>, <fractions>, <hour_offset>, <minute_offset>, <precision> ) |
Функция DATETIMEOFFSETFROMPARTS возвращает значение datetimeoffset для указанной даты и времени с указанными смещениями и точностью. |
datetimeoffset(precision) | Детерминированное |
| SMALLDATETIMEFROMPARTS | SMALLDATETIMEFROMPARTS ( <year>, <month>, <day>, <hour>, <minute> ) |
Функция SMALLDATETIMEFROMPARTS возвращает значение smalldatetime для указанной даты и времени. |
smalldatetime | Детерминированное |
| TIMEFROMPARTS | TIMEFROMPARTS ( <hour>, <minute>, <seconds>, <fractions>, <precision> ) |
Функция TIMEFROMPARTS возвращает значение времени для указанного времени с указанной точностью. |
time(precision) | Детерминированное |
Функции, возвращающие значения разности даты и времени
| Function | Синтаксис | Возвращаемое значение | Тип возвращаемых данных | Детерминизм |
|---|---|---|---|---|
| DATEDIFF | DATEDIFF ( <datepart>, <startdate>, <enddate> ) |
Функция DATEDIFF возвращает количество границ даты или времени, пересекаемых между двумя указанными датами. |
int | Детерминированное |
| DATEDIFF_BIG | DATEDIFF_BIG ( <datepart>, <startdate>, <enddate> ) |
Функция DATEDIFF_BIG возвращает количество границ даты или времени, пересекаемых между двумя указанными датами. |
bigint | Детерминированное |
Функции, изменяющие значения даты и времени
| Function | Синтаксис | Возвращаемое значение | Тип возвращаемых данных | Детерминизм |
|---|---|---|---|---|
| DATEADD | DATEADD (<datepart>, <number>, <date> ) |
Функция DATEADD возвращает новое значение даты и времени путем добавления интервала в указанную часть даты указанной даты. |
Тип данных аргумента date | Детерминированное |
| EOMONTH | EOMONTH ( <start_date> [ , <month_to_add> ] ) |
Функция EOMONTH возвращает последний день месяца, содержащий указанную дату, с необязательным смещением. |
Тип возвращаемого значения — это тип аргумента 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 | Детерминированное |
Подсказка
Дополнительные сведения и рекомендации по обработке сведений часового пояса в SQL Server с типом данных datetimeoffset см. в разделе AT TIME ZONE.
Функции, устанавливающие или возвращающие функции формата сеанса
| Function | Синтаксис | Возвращаемое значение | Тип возвращаемых данных | Детерминизм |
|---|---|---|---|---|
| @@DATEFIRST | @@DATEFIRST |
Функция @@DATEFIRST возвращает текущее значение для сеанса SET DATEFIRST. |
tinyint | Недетерминированная |
| НАЗНАЧЬТЕ ДАТУ. |
SET DATEFIRST { *number* } или SET DATEFIRST { *@number_var* } |
Оператор SET DATEFIRST задает первый день недели числом от 1 до 7. |
Неприменимо | Неприменимо |
| ФОРМАТ УСТАНОВКИ ДАТЫ |
SET DATEFORMAT { *format* } или SET DATEFORMAT { *@format_var* } |
Инструкция SET DATEFORMAT задает порядок частей даты (месяц или день/год) для ввода данных datetime или smalldatetime . |
Неприменимо | Неприменимо |
| @@LANGUAGE | @@LANGUAGE |
Функция @@LANGUAGE возвращает имя языка в текущем используемом формате.
@@LANGUAGE не является функцией даты или времени. Однако на данные, выводимые функциями даты, могут повлиять настройки языка. |
Неприменимо | Неприменимо |
| ЯЗЫК МНОЖЕСТВ |
SET LANGUAGE { [ N ] '*language*' } или SET LANGUAGE { *@language_var* } |
Устанавливает языковую среду сеанса и системных сообщений.
SET LANGUAGE не является функцией даты или времени, но параметр языка влияет на выходные данные функций даты. |
Неприменимо | Неприменимо |
| sp_helplanguage |
sp_helplanguage [ [ *@language* = ] '*language*' ] |
Функция sp_helplanguage возвращает сведения о форматах дат всех поддерживаемых языков. Параметр языка влияет на выходные данные функций даты. |
Неприменимо | Неприменимо |
Функции, проверяющие значения даты и времени
| Function | Синтаксис | Возвращаемое значение | Тип возвращаемых данных | Детерминизм |
|---|---|---|---|---|
| ISDATE | ISDATE ( <expression> ) |
Функция ISDATE определяет, имеет ли входное выражение datetime или smalldatetime допустимое значение даты или времени. |
int | Функция ISDATE детерминирована только с CONVERT функцией, если CONVERT указан параметр стиля, и если стиль не равен 0, 100, 9 или 109. |
Дата и время — см. также
| Статья | Описание |
|---|---|
| FORMAT | Функция FORMAT возвращает значение, форматируемое указанным форматом и необязательным языком и языком и региональными параметрами. Для выполнения форматирования значения даты, времени и чисел с учетом локали в виде строк используется функция FORMAT. |
| CAST и CONVERT |
CONVERT И CAST функции преобразуют значения даты и времени в строковые литералы и другие форматы даты и времени. |
| Написание инструкций Transact-SQL, адаптированных к международному использованию | Предоставляет рекомендации относительно переносимости баз данных и приложений баз данных, использующих инструкции Transact-SQL, с одного языка на другой или в многоязычную среду. |
| Скалярные функции ODBC | Предоставляет сведения о скалярных функциях ODBC, которые могут использоваться в инструкциях Transact-SQL. Включает функции даты и времени ODBC. |