Оператор + (сложение) (Transact-SQL)
Складывает два числа. С помощью этого арифметического оператора сложения можно также прибавлять число дней к дате.
Синтаксис
expression + expression
Аргументы
- expression
Любое допустимое выражение любого типа данных числовой категории, кроме типа данных bit. Не может быть использовано с типами данных date, time, datetime2 или datetimeoffset.
Типы результата
Возвращает тип данных аргумента с более высоким приоритетом. Дополнительные сведения см. в разделе Приоритет типов данных (Transact-SQL).
Примеры
A. Использование оператора сложения для вычисления общего числа часов отсутствия на рабочем месте для каждого сотрудника.
В следующем примере приведен расчет общего времени отсутствия на рабочем месте (в часах) для каждого сотрудника путем сложения отпускных часов и часов отсутствия по болезни.
USE AdventureWorks2008R2;
GO
SELECT p.FirstName, p.LastName, VacationHours, SickLeaveHours,
VacationHours + SickLeaveHours AS 'Total Hours Away'
FROM HumanResources.Employee AS e
JOIN Person.Person AS p ON e.BusinessEntityID = p.BusinessEntityID
ORDER BY 'Total Hours Away' ASC;
GO
Б. Использование оператора сложения для добавления дней к значениям даты и часа
В следующем примере число дней прибавляется к дате типа datetime.
USE master;
GO
SET NOCOUNT ON
DECLARE @startdate datetime, @adddays int;
SET @startdate = ''January 10, 1900 12:00 AM';
SET @adddays = 5;
SET NOCOUNT OFF;
SELECT @startdate + 1.25 AS 'Start Date',
@startdate + @adddays AS 'Add Date';
Ниже приводится результирующий набор.
Start Date Add Date
--------------------------- ---------------------------
1900-01-11 06:00:00.000 1900-01-15 00:00:00.000
(1 row(s) affected)
В. Сложение данных символьного и целочисленного типов
В следующем примере складываются значения типа int и символьного типа путем преобразования данных символьного типа в тип int. Если в строке типа char существует недопустимый символ, то компонент SQL Server Database Engine возвращает ошибку.
DECLARE @addvalue int;
SET @addvalue = 15;
SELECT '125127' + @addvalue;
Ниже приводится результирующий набор.
-----------------------
125142
(1 row(s) affected)
См. также