Scalar Data Conversion Functions
These functions convert one data type to another.
Function | Syntax | Purpose |
---|---|---|
BYTE | BYTE(numeric value) | Casts the argument to a value of type byte |
| BYTE(character value) | Parses the string as a byte value |
SMALLINT | SMALLINT(numeric value) | Casts the argument to a value of type smallint |
| SMALLINT(character value) | Parses the string as a smallint value |
INTEGER | INT(numeric value) or INTEGER(numeric value) | Casts the argument to a value of type integer |
| INT(character value) or INTEGER(character value) | Parses the string as an integer value |
BIGINT | BIGINT(numeric value) | Casts the argument to a value of type bigint |
| BIGINT(character value) | Parses the string as a bigint value |
| BIGINT(time value) | Creates a bigint with the number of milliseconds represented by the time argument |
| BIGINT(timestamp value) | Creates a bigint with the number of milliseconds after the epoch corresponding to the timestamp argument |
FLOAT | FLOAT(numeric value) | Casts the argument to a value of type float |
| FLOAT(character value) | Parses the string as a float value |
DOUBLE | DOUBLE(numeric value) | Casts the argument to a value of type double |
| DOUBLE(character value) | Parses the string as a double value |
DECIMAL | DECIMAL(numeric value) | Casts the argument to a value of type decimal |
| DECIMAL(character value) | Parses the string and creates a decimal value |
| DECIMAL(numeric value, integer value, integer value) | Casts the first argument to a decimal value with precision of the second argument and scale of the third argument |
| DECIMAL(character value, integer value, integer value) | Parses the first argument to a decimal value with precision of the second argument and scale of the third argument |
CHAR | STR | CHAR(numeric value) | Creates a string version of the numeric value |
| CHAR(character value) | None |
| CHAR(timestamp) | Creates a string representation of the timestamp |
| CHAR(date) | Creates a string representation of the date |
| CHAR(time) | Creates a string representation of the time |
| CHAR(boolean) | Creates a string representation of the Boolean value |
| CHAR(binary) | Creates a hexadecimal string representation of the binary value |
| CHAR(ip) | Creates a string representation of the IPV4 or IPV6 value |
| CHAR(ipv4) | Creates a string representation of the IPV4 value |
| CHAR(hash) | Creates a string representation of the fixed-binary hash value |
| CHAR(point) | Creates a string representation of the point value |
| CHAR(uuid) | Creates a string representation of the Universally Unique IDentifier (UUID) |
BINARY | BINARY(character value) | Parses a hexadecimal string (such as 0x54ab) to create a binary value. Letters can be of either case. |
| BINARY(binary) | None |
| BINARY(hash) | Converts the fixed length binary value (hash) to a variable length binary value |
BOOLEAN | BOOLEAN(character value) | Parses a string to create a Boolean value. The string must contain either true or false. It is case-insensitive. |
| BOOLEAN(boolean) | None |
DATE | DATE(character value) | Parses a string in the form 'YYYY-MM-DD' to create a date. Extra characters are ignored. |
| DATE(date) | None |
| DATE(timestamp) | Truncates a timestamp to be a date value |
HASH | HASH(char, length) | Creates a fixed length binary value, with length <length>, from a string, i.e. 0x1234abcd. Zero extended if the string does not have enough bytes, truncated if it has too many. |
| HASH(binary, length) | Creates a fixed length binary value, with length <length>, from a variable length binary value. Zero extended if the string does not have enough bytes, truncated if it has too many. |
IP | IP(character value) | Creates a value of type IPV4 or IPV6 from a string |
IPV4 | IPV4(character value) | Parses a string containing an IP address and creates a value of type IPV4 |
| IPV4(ipv4) | no-op |
TIME | TIME(character value) | Parses the string to create a time value. The string must be in the form 'HH:MM[.SSSSSSSSS]' |
| TIME(bigint) | Creates a time value representing a certain number of milliseconds after midnight |
| TIME(time) | None |
| TIME(timestamp) | Makes a time value from the time component of a timestamp |
TIMESTAMP | TIMESTAMP(character value) | Parses a string and makes a timestamp value. The string must be in the format 'YYYY-MM-DD[ HH:MM][.SSSSSSSSS]'. |
| TIMESTAMP(date) | Makes a timestamp from the date by setting the time component to 00:00:00.0 |
| TIMESTAMP(timestamp) | None |
| TIMESTAMP(bigint value) | Creates a timestamp from a bigint representing the number of milliseconds after the Unix epoch (1/1/1970). |
UUID | UUID(character value) | Parses the string and makes a UUID value. The string must be a valid UUID. |
| UUID(uuid) | None |
WEEKS | WEEKS(integral value) | Converts an integral value to an interval value of type weeks for date calculations. |
| Weeks(weeks) | None |
DAYS | DAYS(integral value) | Converts an integral value to an interval value of type days for date calculations. |
| DAYS(days) | None |
| DAYS(weeks) | Converts an interval value of type weeks to an interval value of type days representing the same time span. |
MONTHS | MONTHS(integral value) | Converts an integral value to an interval value of type months for date calculations. |
| MONTHS(months) | None |
| MONTHS(years) | Converts an interval value of type years to an interval value of type months representing the same time span |
YEARS | YEARS(integral value) | Converts an integral value to an interval value of type years |
| YEARS(years) | None |
HOURS | HOURS(integral value) | Converts an integral value to an interval value of type hours |
| HOURS(hours) | None |
| HOURS(days) | Converts an interval value of type days to an interval value of type hours representing the same time span. |
| HOURS(weeks) | Converts an interval value of type weeks to an interval value of type hours representing the same time span. |
MINUTES | MINUTES(integral value) | Converts an integral value to an interval value of type minutes |
| MINUTES(minutes) | None |
| MINUTES(hours) | Converts an interval value of type hours to an interval value of type minutes representing the same time span |
| MINUTES(days) | Converts an interval value of type days to an interval value of type minutes representing the same time span |
| MINUTES(weeks) | Converts an interval value of type weeks to an interval value of type minutes representing the same time span |
SECONDS | SECONDS(integral value) | Converts an integral value to an interval value of type seconds |
| SECONDS(seconds) | None |
| SECONDS(minutes) | Converts an interval value of type minutes to an interval value of type seconds representing the same time span |
| SECONDS(hours) | Converts an interval value of type hours to an interval value of type seconds representing the same time span |
| SECONDS(days) | Converts an interval value of type days to an interval value of type seconds representing the same time span |
| SECONDS(weeks) | Converts an interval value of type weeks to an interval value of type seconds representing the same time span |
MILLISECONDS | MILLISECONDS(integral value) | Converts an integral value to an interval value of type milliseconds |
| MILLISECONDS(milliseconds) | None |
| MILLISECONDS(seconds) | Converts an interval value of type seconds to an interval value of type milliseconds, representing the same time span |
| MILLISECONDS(minutes) | Converts an interval value of type minutes to an interval value of type milliseconds representing the same time span |
| MILLISECONDS(hours) | Converts an interval value of type hours to an interval value of type milliseconds representing the same time span |
| MILLISECONDS(days) | Converts an interval value of type days to an interval value of type milliseconds representing the same time span |
| MILLISECONDS(weeks) | Converts an interval value of type weeks to an interval value of type milliseconds representing the same time span |
MICROSECONDS | MICROSECONDS(integral value) | Converts an integral value to an interval value of type microseconds |
| MICROSECONDS(milliseconds) | Converts an interval value of type milliseconds to an interval value of type microseconds representing the same time span |
| MICROSECONDS(seconds) | Converts an interval value of type seconds to an interval value of type microseconds representing the same time span |
| MICROSECONDS(minutes) | Converts an interval value of type minutes to an interval value of type microseconds representing the same time span |
| MICROSECONDS(hours) | Converts an interval value of type hours to an interval value of type microseconds representing the same time span |
| MICROSECONDS(days) | Converts an interval value of type days to an interval value of type microseconds representing the same time span |
| MICROSECONDS(weeks) | Converts an interval value of type weeks to an interval value of type microseconds representing the same time span |
| MICROSECONDS(microseconds) | None |
NANOSECONDS | NANOSECONDS(integral value) | Converts an integral value to an interval value of type nanoseconds |
| NANOSECONDS(microseconds) | Converts an interval value of type microseconds to an interval value of type nanoseconds representing the same time span |
| NANOSECONDS(milliseconds) | Converts an interval value of type milliseconds to an interval value of type nanoseconds representing the same time span |
| NANOSECONDS(seconds) | Converts an interval value of type seconds to an interval value of type nanoseconds representing the same time span |
| NANOSECONDS(minutes) | Converts an interval value of type minutes to an interval value of type nanoseconds representing the same time span |
| NANOSECONDS(hours) | Converts an interval value of type hours to an interval value of type nanoseconds representing the same time span |
| NANOSECONDS(days) | Converts an interval value of type days to an interval value of type nanoseconds representing the same time span |
| NANOSECONDS(weeks) | Converts an interval value of type weeks to an interval value of type nanoseconds representing the same time span |
| NANOSECONDS(nanoseconds) | None |
In certain situations, SQL can automatically convert expressions to a specific data type without an explicit SQL statement.
You can cast string literals to any other data type by placing the name of the data type before the string literal.
Examples
Cast a Double
Cast the value 1.5 from a string to a floating point value.
Output: 1.5
Cast an Array
Cast the array INT[0,1,2,3] from a string to an array of integers.
Output: ['0','1','2','3']
Cast a Point Value
Cast the point value POINT(0 0) to the geospatial data type POINT. In this case, the cast keyword is ST_POINT, and the data type is POINT.
Output: POINT(0.0 0.0)
You can cast date and time values to their interval value with the INTERVAL keyword.
Retrieve Interval Values from Various Date and Time Strings
Retrieve the interval value 5 from the '5 DAYS' string.
Output: 5
Retrieve the interval value 2 from the '2 WEEKS' string.
Output: 2
Retrieve the interval value 10 from the '10 SECONDS' string.
Output: 10
These SQL statements allow casting an expression to any other data type.
Transforms an expression to any other data type.
This function operates similarly to the :: Operator.
Syntax
Argument | Data Type | Description |
---|---|---|
expr | Any | A column or value to transform to another data type. |
data_type | String | Any of the Ocient-supported data types. For a full list, see Data Types. |
As shown in the syntax examples, CAST can support the optional ! operator.
The ! operator returns a NULL value if the operation cannot cast to the specified data type. This behavior prevents situations where the system would normally raise an error.
Examples
Cast an Integer to Varchar
Transform the value 2 as a VARCHAR string.
Output: '2'
Cast a Varchar to Date
Transform the '2020-02-02' string to the DATE data type.
Output: '2020-02-02'
Cast an Incompatible Type with the ! Operator
Transform the 'a' string to an integer, or INT data type, using the ! operator.
Output: NULL
This operation generates NULL because the database cannot transform this value to an integer. Without adding this operator, the statement raises an error because the database cannot transform the input expression to a numeric type.
Transforms an expression to any other data type.
This function operates similarly to the CAST function.
:: Syntax
Argument | Data Type | Description |
---|---|---|
expr | Any | A column or value to transform to another data type. |
data_type | String | Any of the Ocient-supported data types. For a full list, see Data Types. |
As shown in the syntax examples, :: can support the optional ! operator.
The ! operator returns a NULL value if the operation cannot cast to the specified data type. This behavior prevents situations where the system would normally raise an error.
Examples
Cast an Integer to Float
Transform the '2' string to a floating point number.
Output: 2.0
Cast to an Incompatible Type with the ! Operator
Transform the 'a' string to an integer, or INT data type, using the ! operator.
Output: NULL
This operation generates NULL because the database cannot transform this value to an integer. Without adding this operator, the statement raises an error because the database cannot transform the input expression to a numeric type.