T-SQL TIMEFROMPARTS()
функцията ви позволява да изградите време стойност от различните времеви части. Можете също да посочите точността на връщаната стойност.
По-долу са дадени примери за това как работи тази функция.
Синтаксис
Синтаксисът е така:
TIMEFROMPARTS ( hour, minute, seconds, fractions, precision )
Когато първите 4 аргумента са целочислени изрази, указващи тази конкретна част от времето. Петият аргумент е целочислен литерал, указващ точността на времето стойност за връщане.
Пример
Ето пример за демонстрация.
SELECT TIMEFROMPARTS( 23, 35, 29, 1234567, 7 ) AS Result;
Резултат:
+------------------+ | Result | |------------------| | 23:35:29.1234567 | +------------------+
В този случай посочих прецизна стойност от 7.
За да бъдем по-точни (без каламбур), аргументът за точност всъщност определя скала . Мащаб е броят на цифрите вдясно от десетичната запетая. Прецизност е общият брой цифри.
Невалидни аргументи
Ако някой от аргументите е невалиден, ще възникне грешка. Пример:
SELECT TIMEFROMPARTS( 23, 35, 61, 1234567, 7 ) AS Result;
Резултат:
Cannot construct data type time, some of the arguments have values which are not valid.
В този случай предоставих минута аргумент на 61
.
Брой аргументи
Ще възникне и грешка, ако не предоставите правилния брой аргументи. Пример:
SELECT TIMEFROMPARTS( 23, 35, 29, 7 ) AS Result;
Резултат:
The timefromparts function requires 5 argument(s).
Нулеви стойности
Ако някой от първите 4 аргумента е нулев, резултатът е NULL
:
SELECT TIMEFROMPARTS( 23, 35, NULL, 1234567, 7 ) AS Result;
Резултат:
+----------+ | Result | |----------| | NULL | +----------+
Ако обаче 5-ият аргумент (прецизност ) е нула, възниква грешка:
SELECT TIMEFROMPARTS( 23, 35, 29, 1234567, NULL ) AS Result;
Резултат:
Scale argument is not valid. Valid expressions for data type time scale argument are integer constants and integer constant expressions.
Отдалечено
Microsoft заявява, че TIMEFROMPARTS()
функцията може да бъде отдалечена на сървъри на SQL Server 2012 (11.x) и по-нови версии. Не може да бъде отдалечено до сървъри, които имат версия по-ниска от SQL Server 2012 (11.x).
Подобна функция
Вижте също SMALLDATETIMEFROMPARTS() примери в SQL Server (T-SQL) за получаване на smalldatetime стойност вместо време стойност.