DATETIMEOFFSETFROMPARTS (Transact-SQL)
Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)
Возвращает значение datetimeoffset для указанных аргументов даты и времени. Точность возвращаемого значения определяется аргументом precision, а смещение — аргументами offset.
Соглашения о синтаксисе Transact-SQL
Синтаксис
DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision )
Аргументы
year
Целочисленное выражение, задающее год.
month
Целочисленное выражение, задающее месяц.
day
Целочисленное выражение, задающее день.
hour
Целочисленное выражение, задающее часы.
minute
Целочисленное выражение, задающее минуты.
seconds
Целочисленное выражение, задающее секунды.
fractions
Целочисленное выражение, задающее дробное значение секунд.
hour_offset
Целочисленное выражение, задающее часть смещения часового пояса в часах.
minute_offset
Целочисленное выражение, задающее часть смещения часового пояса в минутах.
precision
Целочисленное литеральное значение, которое определяет точность значения datetimeoffset, возвращаемого функцией DATETIMEOFFSETFROMPARTS
.
Типы возвращаемых данных
datetimeoffset( precision )
Замечания
Функция DATETIMEOFFSETFROMPARTS
возвращает полностью инициализированный тип данных datetimeoffset. Аргументы смещения представляют смещение часового пояса. Если аргументы смещения пропущены, в DATETIMEOFFSETFROMPARTS
предполагается, что смещение часового пояса равно 00:00
, то есть отсутствует. Если аргументы смещения указаны, DATETIMEOFFSETFROMPARTS
требует наличия значений обоих аргументов, причем оба должны быть или положительными, или отрицательными. Если minute_offset указывается без значения hour_offset, DATETIMEOFFSETFROMPARTS
вызывает ошибку. Если другие аргументы имеют недопустимые значения, DATETIMEOFFSETFROMPARTS
вызывает ошибку. DATETIMEOFFSETFROMPARTS
возвращает NULL
, если хотя бы один обязательный аргумент имеет значение NULL
. Но если precision имеет значение NULL
, DATETIMEOFFSETFROMPARTS
вызывает ошибку.
Аргумент fractions зависит от аргумента precision. Например, если значение precision равно 7, каждая дробная часть представляет 100 наносекунд, а если значение precision равно 3, каждая дробная часть представляет миллисекунду. Если значение precision равно нулю, значение fractions также должно быть равно нулю. В противном случае DATETIMEOFFSETFROMPARTS
вызывает ошибку.
Эта функция может быть удалена на серверы SQL Server 2012 (11.x) и выше. Он не удален на серверы с версией ниже SQL Server 2012 (11.x).
Примеры
А. Пример без долей секунды
SELECT DATETIMEOFFSETFROMPARTS ( 2010, 12, 31, 14, 23, 23, 0, 12, 0, 7 ) AS Result;
Вот результирующий набор.
Result
----------------------------------
2010-12-31 14:23:23.0000000 +12:00
(1 row(s) affected)
B. Пример с долями секунд
В этом примере показано использование параметров fractions и precision:
Если параметр fractions имеет значение 5, а параметр precision — значение 1, то значение параметра fractions представляет 5/10 секунды.
Если параметр fractions имеет значение 50, а параметр precision — значение 2, то значение параметра fractions представляет 50/100 секунды.
Если параметр fractions имеет значение 500, а параметр precision — значение 3, то значение параметра fractions представляет 500/1000 секунды.
SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 5, 12, 30, 1 );
SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 50, 12, 30, 2 );
SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 500, 12, 30, 3 );
GO
Вот результирующий набор.
----------------------------------
2011-08-15 14:30:00.5 +12:30
(1 row(s) affected)
----------------------------------
2011-08-15 14:30:00.50 +12:30
(1 row(s) affected)
----------------------------------
2011-08-15 14:30:00.500 +12:30
(1 row(s) affected)