Reference Guide > TDV Support for SQL Operators > Arithmetic Operators > Multiply
 
Multiply
The multiply operator (*) multiplies two operands and returns the product.
Note: A configuration parameter is available to control whether this operator allows precision/scale to exceed 38. See Decimal Digit Limitation on Functions, for details.
DECIMAL and NUMERIC Data Types
When the multiply operator is applied to operands that include DECIMAL or NUMERIC data types, the output data type, precision and scale might depend on the data type, precision and scale of the operands, as shown below.
Syntax
operand1 * operand2
Remarks
The order of the inputs (operands) has no effect on the output data type.
The outputs for multiplying DECIMAL and NUMERIC data types with each other and with other data types are shown in the table.
Inputs
Output
DECIMAL(p1,s1) * DECIMAL(p2,s2)
DECIMAL(p1+p2,s1+s2)
DECIMAL(p1,s1) * NUMERIC(p2,s2)
NUMERIC(p1,s1) * NUMERIC(p2,s2)
NUMERIC(p1+p2,s1+s2)
DECIMAL(p1,s1) * TINYINT
DECIMAL(p+3,s)
DECIMAL(p1,s1) * SMALLINT
DECIMAL(p+5,s)
DECIMAL(p1,s1) * INTEGER
DECIMAL(p+10,s)
DECIMAL(p1,s1) * BIGINT
DECIMAL(p+19,s)
DECIMAL(p,s) * not-DECIMAL-or-NUMERIC
DECIMAL(p,s)
NUMERIC(p,s) * not-DECIMAL-or-NUMERIC
NUMERIC(p,s)
Examples
DECIMAL(6,2) * TINYINT -> DECIMAL(9,2)
DECIMAL(6,2) * SMALLINT -> DECIMAL(11,2)
INTERVAL Type
INTERVAL can be multiplied by numbers. The output data type is INTERVAL.
Syntax
INTERVAL * NUMERIC
Examples
INTERVAL '1' DAY * 10 = INTERVAL '10 00:00:00' DAY TO SECOND
INTERVAL '10' DAY * .1 = INTERVAL '1 00:00:00' DAY TO SECOND
Mixed Data Types
The multiply operator can be applied to operands that have a wide variety of data types, including operands comparable or castable to data types that can accept arithmetic operators.
Syntax
operand1 * operand2
Remarks
The operand data types and resulting output data types are shown in the table.
Operand1
Operand2
Output
TINYINT
SMALLINT
INTEGER
BIGINT
TINYINT
SMALLINT
INTEGER
BIGINT
STRING
INTEGER
TINYINT
SMALLINT
INTEGER
BIGINT
FLOAT
REAL
FLOAT
TINYINT
SMALLINT
INTEGER
BIGINT
DECIMAL
NUMERIC
DECIMAL
FLOAT
REAL
TINYINT
SMALLINT
INTEGER
BIGINT
DECIMAL
FLOAT
FLOAT
REAL
FLOAT
REAL
FLOAT
REAL
DECIMAL
NUMERIC
DECIMAL
DECIMAL
NUMERIC
TINYINT
SMALLINT
INTEGER
BIGINT
STRING
DECIMAL
NUMERIC
FLOAT
REAL
DECIMAL
NUMERIC
DECIMAL
NUMERIC
FLOAT
STRING
STRING
TINYINT
SMALLINT
INTEGER
BIGINT
NUMERIC
FLOAT
REAL
DECIMAL
DECIMAL
INTEGER
INTEGER
INTEGER
INTEGER
DECIMAL
FLOAT
FLOAT
DECIMAL
NULL
TINYINT
SMALLINT
INTEGER
BIGINT
NUMERIC
FLOAT
REAL
DECIMAL
STRING
NULL
NULL
TINYINT
SMALLINT
INTEGER
BIGINT
NUMERIC
FLOAT
REAL
DECIMAL
STRING
NULL
INTERVAL
NUMERIC
INTERVAL