Type conversion functions
Common issues with data conversion
ClickHouse generally uses the same behavior as C++ programs.
to<type> functions and cast behave differently in some cases, for example in case of LowCardinality: cast removes LowCardinality trait to<type> functions don't. The same with Nullable, this behaviour is not compatible with SQL standard, and it can be changed using cast_keep_nullable setting.
Be aware of potential data loss if values of a datatype are converted to a smaller datatype (for example from Int64 to Int32) or between
incompatible datatypes (for example from String to Int). Make sure to check carefully if the result is as expected.
Example:
Notes on toString functions
The toString family of functions allows for converting between numbers, strings (but not fixed strings), dates, and dates with times.
All of these functions accept one argument.
- When converting to or from a string, the value is formatted or parsed using the same rules as for the TabSeparated format (and almost all other text formats). If the string can't be parsed, an exception is thrown and the request is canceled.
- When converting dates to numbers or vice versa, the date corresponds to the number of days since the beginning of the Unix epoch.
- When converting dates with times to numbers or vice versa, the date with time corresponds to the number of seconds since the beginning of the Unix epoch.
- The
toStringfunction of theDateTimeargument can take a second String argument containing the name of the time zone, for example:Europe/Amsterdam. In this case, the time is formatted according to the specified time zone.
Notes on toDate/toDateTime functions
The date and date-with-time formats for the toDate/toDateTime functions are defined as follows:
As an exception, if converting from UInt32, Int32, UInt64, or Int64 numeric types to Date, and if the number is greater than or equal to 65536, the number is interpreted as a Unix timestamp (and not as the number of days) and is rounded to the date.
This allows support for the common occurrence of writing toDate(unix_timestamp), which otherwise would be an error and would require writing the more cumbersome toDate(toDateTime(unix_timestamp)).
Conversion between a date and a date with time is performed the natural way: by adding a null time or dropping the time.
Conversion between numeric types uses the same rules as assignments between different numeric types in C++.
Example
Query:
Result:
Also see the toUnixTimestamp function.
toBool
Converts an input value to a value of type Bool. Throws an exception in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string. Expression.
Supported arguments:
- Values of type (U)Int8/16/32/64/128/256.
- Values of type Float32/64.
- Strings
trueorfalse(case-insensitive).
Returned value
- Returns
trueorfalsebased on evaluation of the argument. Bool.
Example
Query:
Result:
toInt8
Converts an input value to a value of type Int8. Throws an exception in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression.
Supported arguments:
- Values or string representations of type (U)Int8/16/32/64/128/256.
- Values of type Float32/64.
Unsupported arguments:
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt8('0xc0fe');.
If the input value cannot be represented within the bounds of Int8, overflow or underflow of the result occurs.
This is not considered an error.
For example: SELECT toInt8(128) == -128;.
Returned value
- 8-bit integer value. Int8.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toInt8OrZero
Like toInt8, this function converts an input value to a value of type Int8 but returns 0 in case of an error.
Syntax
Arguments
x— A String representation of a number. String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return 0):
- String representations of ordinary Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt8OrZero('0xc0fe');.
If the input value cannot be represented within the bounds of Int8, overflow or underflow of the result occurs. This is not considered an error.
Returned value
- 8-bit integer value if successful, otherwise
0. Int8.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toInt8OrNull
Like toInt8, this function converts an input value to a value of type Int8 but returns NULL in case of an error.
Syntax
Arguments
x— A String representation of a number. String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return \N)
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt8OrNull('0xc0fe');.
If the input value cannot be represented within the bounds of Int8, overflow or underflow of the result occurs. This is not considered an error.
Returned value
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toInt8OrDefault
Like toInt8, this function converts an input value to a value of type Int8 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression / String.default(optional) — The default value to return if parsing to typeInt8is unsuccessful. Int8.
Supported arguments:
- Values or string representations of type (U)Int8/16/32/64/128/256.
- Values of type Float32/64.
Arguments for which the default value is returned:
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt8OrDefault('0xc0fe', CAST('-1', 'Int8'));.
If the input value cannot be represented within the bounds of Int8, overflow or underflow of the result occurs. This is not considered an error.
Returned value
- 8-bit integer value if successful, otherwise returns the default value if passed or
0if not. Int8.
- The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
- The default value type should be the same as the cast type.
Example
Query:
Result:
See also
toInt16
Converts an input value to a value of type Int16. Throws an exception in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression.
Supported arguments:
- Values or string representations of type (U)Int8/16/32/64/128/256.
- Values of type Float32/64.
Unsupported arguments:
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt16('0xc0fe');.
If the input value cannot be represented within the bounds of Int16, overflow or underflow of the result occurs.
This is not considered an error.
For example: SELECT toInt16(32768) == -32768;.
Returned value
- 16-bit integer value. Int16.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toInt16OrZero
Like toInt16, this function converts an input value to a value of type Int16 but returns 0 in case of an error.
Syntax
Arguments
x— A String representation of a number. String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return 0):
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt16OrZero('0xc0fe');.
If the input value cannot be represented within the bounds of Int16, overflow or underflow of the result occurs. This is not considered as an error.
Returned value
- 16-bit integer value if successful, otherwise
0. Int16.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toInt16OrNull
Like toInt16, this function converts an input value to a value of type Int16 but returns NULL in case of an error.
Syntax
Arguments
x— A String representation of a number. String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return \N)
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt16OrNull('0xc0fe');.
If the input value cannot be represented within the bounds of Int16, overflow or underflow of the result occurs. This is not considered an error.
Returned value
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toInt16OrDefault
Like toInt16, this function converts an input value to a value of type Int16 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression / String.default(optional) — The default value to return if parsing to typeInt16is unsuccessful. Int16.
Supported arguments:
- Values or string representations of type (U)Int8/16/32/64/128/256.
- Values of type Float32/64.
Arguments for which the default value is returned:
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt16OrDefault('0xc0fe', CAST('-1', 'Int16'));.
If the input value cannot be represented within the bounds of Int16, overflow or underflow of the result occurs. This is not considered an error.
Returned value
- 16-bit integer value if successful, otherwise returns the default value if passed or
0if not. Int16.
- The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
- The default value type should be the same as the cast type.
Example
Query:
Result:
See also
toInt32
Converts an input value to a value of type Int32. Throws an exception in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression.
Supported arguments:
- Values or string representations of type (U)Int8/16/32/64/128/256.
- Values of type Float32/64.
Unsupported arguments:
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt32('0xc0fe');.
If the input value cannot be represented within the bounds of Int32, the result over or under flows.
This is not considered an error.
For example: SELECT toInt32(2147483648) == -2147483648;
Returned value
- 32-bit integer value. Int32.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toInt32OrZero
Like toInt32, this function converts an input value to a value of type Int32 but returns 0 in case of an error.
Syntax
Arguments
x— A String representation of a number. String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return 0):
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt32OrZero('0xc0fe');.
If the input value cannot be represented within the bounds of Int32, overflow or underflow of the result occurs. This is not considered an error.
Returned value
- 32-bit integer value if successful, otherwise
0. Int32
The function uses rounding towards zero, meaning it truncate fractional digits of numbers.
Example
Query:
Result:
See also
toInt32OrNull
Like toInt32, this function converts an input value to a value of type Int32 but returns NULL in case of an error.
Syntax
Arguments
x— A String representation of a number. String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return \N)
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt32OrNull('0xc0fe');.
If the input value cannot be represented within the bounds of Int32, overflow or underflow of the result occurs. This is not considered an error.
Returned value
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toInt32OrDefault
Like toInt32, this function converts an input value to a value of type Int32 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression / String.default(optional) — The default value to return if parsing to typeInt32is unsuccessful. Int32.
Supported arguments:
- Values or string representations of type (U)Int8/16/32/64/128/256.
- Values of type Float32/64.
Arguments for which the default value is returned:
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt32OrDefault('0xc0fe', CAST('-1', 'Int32'));.
If the input value cannot be represented within the bounds of Int32, overflow or underflow of the result occurs. This is not considered an error.
Returned value
- 32-bit integer value if successful, otherwise returns the default value if passed or
0if not. Int32.
- The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
- The default value type should be the same as the cast type.
Example
Query:
Result:
See also
toInt64
Converts an input value to a value of type Int64. Throws an exception in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression.
Supported arguments:
- Values or string representations of type (U)Int8/16/32/64/128/256.
- Values of type Float32/64.
Unsupported types:
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt64('0xc0fe');.
If the input value cannot be represented within the bounds of Int64, the result over or under flows.
This is not considered an error.
For example: SELECT toInt64(9223372036854775808) == -9223372036854775808;
Returned value
- 64-bit integer value. Int64.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toInt64OrZero
Like toInt64, this function converts an input value to a value of type Int64 but returns 0 in case of an error.
Syntax
Arguments
x— A String representation of a number. String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return 0):
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt64OrZero('0xc0fe');.
If the input value cannot be represented within the bounds of Int64, overflow or underflow of the result occurs. This is not considered an error.
Returned value
- 64-bit integer value if successful, otherwise
0. Int64.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toInt64OrNull
Like toInt64, this function converts an input value to a value of type Int64 but returns NULL in case of an error.
Syntax
Arguments
x— A String representation of a number. Expression / String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return \N)
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt64OrNull('0xc0fe');.
If the input value cannot be represented within the bounds of Int64, overflow or underflow of the result occurs. This is not considered an error.
Returned value
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toInt64OrDefault
Like toInt64, this function converts an input value to a value of type Int64 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression / String.default(optional) — The default value to return if parsing to typeInt64is unsuccessful. Int64.
Supported arguments:
- Values or string representations of type (U)Int8/16/32/64/128/256.
- Values of type Float32/64.
Arguments for which the default value is returned:
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt64OrDefault('0xc0fe', CAST('-1', 'Int64'));.
If the input value cannot be represented within the bounds of Int64, overflow or underflow of the result occurs. This is not considered an error.
Returned value
- 64-bit integer value if successful, otherwise returns the default value if passed or
0if not. Int64.
- The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
- The default value type should be the same as the cast type.
Example
Query:
Result:
See also
toInt128
Converts an input value to a value of type Int128. Throws an exception in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression.
Supported arguments:
- Values or string representations of type (U)Int8/16/32/64/128/256.
- Values of type Float32/64.
Unsupported arguments:
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt128('0xc0fe');.
If the input value cannot be represented within the bounds of Int128, the result over or under flows. This is not considered an error.
Returned value
- 128-bit integer value. Int128.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toInt128OrZero
Like toInt128, this function converts an input value to a value of type Int128 but returns 0 in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression / String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return 0):
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt128OrZero('0xc0fe');.
If the input value cannot be represented within the bounds of Int128, overflow or underflow of the result occurs. This is not considered an error.
Returned value
- 128-bit integer value if successful, otherwise
0. Int128.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toInt128OrNull
Like toInt128, this function converts an input value to a value of type Int128 but returns NULL in case of an error.
Syntax
Arguments
x— A String representation of a number. Expression / String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return \N)
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt128OrNull('0xc0fe');.
If the input value cannot be represented within the bounds of Int128, overflow or underflow of the result occurs. This is not considered an error.
Returned value
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toInt128OrDefault
Like toInt128, this function converts an input value to a value of type Int128 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression / String.default(optional) — The default value to return if parsing to typeInt128is unsuccessful. Int128.
Supported arguments:
- (U)Int8/16/32/64/128/256.
- Float32/64.
- String representations of (U)Int8/16/32/128/256.
Arguments for which the default value is returned:
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt128OrDefault('0xc0fe', CAST('-1', 'Int128'));.
If the input value cannot be represented within the bounds of Int128, overflow or underflow of the result occurs. This is not considered an error.
Returned value
- 128-bit integer value if successful, otherwise returns the default value if passed or
0if not. Int128.
- The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
- The default value type should be the same as the cast type.
Example
Query:
Result:
See also
toInt256
Converts an input value to a value of type Int256. Throws an exception in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression.
Supported arguments:
- Values or string representations of type (U)Int8/16/32/64/128/256.
- Values of type Float32/64.
Unsupported arguments:
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt256('0xc0fe');.
If the input value cannot be represented within the bounds of Int256, the result over or under flows. This is not considered an error.
Returned value
- 256-bit integer value. Int256.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toInt256OrZero
Like toInt256, this function converts an input value to a value of type Int256 but returns 0 in case of an error.
Syntax
Arguments
x— A String representation of a number. String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return 0):
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt256OrZero('0xc0fe');.
If the input value cannot be represented within the bounds of Int256, overflow or underflow of the result occurs. This is not considered an error.
Returned value
- 256-bit integer value if successful, otherwise
0. Int256.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toInt256OrNull
Like toInt256, this function converts an input value to a value of type Int256 but returns NULL in case of an error.
Syntax
Arguments
x— A String representation of a number. String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return \N)
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt256OrNull('0xc0fe');.
If the input value cannot be represented within the bounds of Int256, overflow or underflow of the result occurs. This is not considered an error.
Returned value
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toInt256OrDefault
Like toInt256, this function converts an input value to a value of type Int256 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression / String.default(optional) — The default value to return if parsing to typeInt256is unsuccessful. Int256.
Supported arguments:
- Values or string representations of type (U)Int8/16/32/64/128/256.
- Values of type Float32/64.
Arguments for which the default value is returned:
- String representations of Float32/64 values, including
NaNandInf - String representations of binary and hexadecimal values, e.g.
SELECT toInt256OrDefault('0xc0fe', CAST('-1', 'Int256'));
If the input value cannot be represented within the bounds of Int256, overflow or underflow of the result occurs. This is not considered an error.
Returned value
- 256-bit integer value if successful, otherwise returns the default value if passed or
0if not. Int256.
- The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
- The default value type should be the same as the cast type.
Example
Query:
Result:
See also
toUInt8
Converts an input value to a value of type UInt8. Throws an exception in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression.
Supported arguments:
- Values or string representations of type (U)Int8/16/32/64/128/256.
- Values of type Float32/64.
Unsupported arguments:
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt8('0xc0fe');.
If the input value cannot be represented within the bounds of UInt8, overflow or underflow of the result occurs.
This is not considered an error.
For example: SELECT toUInt8(256) == 0;.
Returned value
- 8-bit unsigned integer value. UInt8.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toUInt8OrZero
Like toUInt8, this function converts an input value to a value of type UInt8 but returns 0 in case of an error.
Syntax
Arguments
x— A String representation of a number. String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return 0):
- String representations of ordinary Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt8OrZero('0xc0fe');.
If the input value cannot be represented within the bounds of UInt8, overflow or underflow of the result occurs. This is not considered an error.
Returned value
- 8-bit unsigned integer value if successful, otherwise
0. UInt8.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toUInt8OrNull
Like toUInt8, this function converts an input value to a value of type UInt8 but returns NULL in case of an error.
Syntax
Arguments
x— A String representation of a number. String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return \N)
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt8OrNull('0xc0fe');.
If the input value cannot be represented within the bounds of UInt8, overflow or underflow of the result occurs. This is not considered an error.
Returned value
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toUInt8OrDefault
Like toUInt8, this function converts an input value to a value of type UInt8 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression / String.default(optional) — The default value to return if parsing to typeUInt8is unsuccessful. UInt8.
Supported arguments:
- Values or string representations of type (U)Int8/16/32/64/128/256.
- Values of type Float32/64.
Arguments for which the default value is returned:
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt8OrDefault('0xc0fe', CAST('0', 'UInt8'));.
If the input value cannot be represented within the bounds of UInt8, overflow or underflow of the result occurs. This is not considered an error.
Returned value
- 8-bit unsigned integer value if successful, otherwise returns the default value if passed or
0if not. UInt8.
- The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
- The default value type should be the same as the cast type.
Example
Query:
Result:
See also
toUInt16
Converts an input value to a value of type UInt16. Throws an exception in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression.
Supported arguments:
- Values or string representations of type (U)Int8/16/32/64/128/256.
- Values of type Float32/64.
Unsupported arguments:
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt16('0xc0fe');.
If the input value cannot be represented within the bounds of UInt16, overflow or underflow of the result occurs.
This is not considered an error.
For example: SELECT toUInt16(65536) == 0;.
Returned value
- 16-bit unsigned integer value. UInt16.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toUInt16OrZero
Like toUInt16, this function converts an input value to a value of type UInt16 but returns 0 in case of an error.
Syntax
Arguments
x— A String representation of a number. String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return 0):
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt16OrZero('0xc0fe');.
If the input value cannot be represented within the bounds of UInt16, overflow or underflow of the result occurs. This is not considered as an error.
Returned value
- 16-bit unsigned integer value if successful, otherwise
0. UInt16.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toUInt16OrNull
Like toUInt16, this function converts an input value to a value of type UInt16 but returns NULL in case of an error.
Syntax
Arguments
x— A String representation of a number. String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return \N)
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt16OrNull('0xc0fe');.
If the input value cannot be represented within the bounds of UInt16, overflow or underflow of the result occurs. This is not considered an error.
Returned value
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toUInt16OrDefault
Like toUInt16, this function converts an input value to a value of type UInt16 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression / String.default(optional) — The default value to return if parsing to typeUInt16is unsuccessful. UInt16.
Supported arguments:
- Values or string representations of type (U)Int8/16/32/64/128/256.
- Values of type Float32/64.
Arguments for which the default value is returned:
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt16OrDefault('0xc0fe', CAST('0', 'UInt16'));.
If the input value cannot be represented within the bounds of UInt16, overflow or underflow of the result occurs. This is not considered an error.
Returned value
- 16-bit unsigned integer value if successful, otherwise returns the default value if passed or
0if not. UInt16.
- The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
- The default value type should be the same as the cast type.
Example
Query:
Result:
See also
toUInt32
Converts an input value to a value of type UInt32. Throws an exception in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression.
Supported arguments:
- Values or string representations of type (U)Int8/16/32/64/128/256.
- Values of type Float32/64.
Unsupported arguments:
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt32('0xc0fe');.
If the input value cannot be represented within the bounds of UInt32, the result over or under flows.
This is not considered an error.
For example: SELECT toUInt32(4294967296) == 0;
Returned value
- 32-bit unsigned integer value. UInt32.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toUInt32OrZero
Like toUInt32, this function converts an input value to a value of type UInt32 but returns 0 in case of an error.
Syntax
Arguments
x— A String representation of a number. String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return 0):
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt32OrZero('0xc0fe');.
If the input value cannot be represented within the bounds of UInt32, overflow or underflow of the result occurs. This is not considered an error.
Returned value
- 32-bit unsigned integer value if successful, otherwise
0. UInt32
The function uses rounding towards zero , meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toUInt32OrNull
Like toUInt32, this function converts an input value to a value of type UInt32 but returns NULL in case of an error.
Syntax
Arguments
x— A String representation of a number. String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return \N)
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt32OrNull('0xc0fe');.
If the input value cannot be represented within the bounds of UInt32, overflow or underflow of the result occurs. This is not considered an error.
Returned value
The function uses rounding towards zero , meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toUInt32OrDefault
Like toUInt32, this function converts an input value to a value of type UInt32 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression / String.default(optional) — The default value to return if parsing to typeUInt32is unsuccessful. UInt32.
Supported arguments:
- Values or string representations of type (U)Int8/16/32/64/128/256.
- Values of type Float32/64.
Arguments for which the default value is returned:
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt32OrDefault('0xc0fe', CAST('0', 'UInt32'));.
If the input value cannot be represented within the bounds of UInt32, overflow or underflow of the result occurs. This is not considered an error.
Returned value
- 32-bit unsigned integer value if successful, otherwise returns the default value if passed or
0if not. UInt32.
- The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
- The default value type should be the same as the cast type.
Example
Query:
Result:
See also
toUInt64
Converts an input value to a value of type UInt64. Throws an exception in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression.
Supported arguments:
- Values or string representations of type (U)Int8/16/32/64/128/256.
- Values of type Float32/64.
Unsupported types:
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt64('0xc0fe');.
If the input value cannot be represented within the bounds of UInt64, the result over or under flows.
This is not considered an error.
For example: SELECT toUInt64(18446744073709551616) == 0;
Returned value
- 64-bit unsigned integer value. UInt64.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toUInt64OrZero
Like toUInt64, this function converts an input value to a value of type UInt64 but returns 0 in case of an error.
Syntax
Arguments
x— A String representation of a number. String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return 0):
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt64OrZero('0xc0fe');.
If the input value cannot be represented within the bounds of UInt64, overflow or underflow of the result occurs. This is not considered an error.
Returned value
- 64-bit unsigned integer value if successful, otherwise
0. UInt64.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toUInt64OrNull
Like toUInt64, this function converts an input value to a value of type UInt64 but returns NULL in case of an error.
Syntax
Arguments
x— A String representation of a number. Expression / String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return \N)
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt64OrNull('0xc0fe');.
If the input value cannot be represented within the bounds of UInt64, overflow or underflow of the result occurs. This is not considered an error.
Returned value
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toUInt64OrDefault
Like toUInt64, this function converts an input value to a value of type UInt64 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression / String.defauult(optional) — The default value to return if parsing to typeUInt64is unsuccessful. UInt64.
Supported arguments:
- Values or string representations of type (U)Int8/16/32/64/128/256.
- Values of type Float32/64.
Arguments for which the default value is returned:
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt64OrDefault('0xc0fe', CAST('0', 'UInt64'));.
If the input value cannot be represented within the bounds of UInt64, overflow or underflow of the result occurs. This is not considered an error.
Returned value
- 64-bit unsigned integer value if successful, otherwise returns the default value if passed or
0if not. UInt64.
- The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
- The default value type should be the same as the cast type.
Example
Query:
Result:
See also
toUInt128
Converts an input value to a value of type UInt128. Throws an exception in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression.
Supported arguments:
- Values or string representations of type (U)Int8/16/32/64/128/256.
- Values of type Float32/64.
Unsupported arguments:
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt128('0xc0fe');.
If the input value cannot be represented within the bounds of UInt128, the result over or under flows. This is not considered an error.
Returned value
- 128-bit unsigned integer value. UInt128.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toUInt128OrZero
Like toUInt128, this function converts an input value to a value of type UInt128 but returns 0 in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression / String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return 0):
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt128OrZero('0xc0fe');.
If the input value cannot be represented within the bounds of UInt128, overflow or underflow of the result occurs. This is not considered an error.
Returned value
- 128-bit unsigned integer value if successful, otherwise
0. UInt128.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toUInt128OrNull
Like toUInt128, this function converts an input value to a value of type UInt128 but returns NULL in case of an error.
Syntax
Arguments
x— A String representation of a number. Expression / String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return \N)
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt128OrNull('0xc0fe');.
If the input value cannot be represented within the bounds of UInt128, overflow or underflow of the result occurs. This is not considered an error.
Returned value
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toUInt128OrDefault
Like toUInt128, this function converts an input value to a value of type UInt128 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression / String.default(optional) — The default value to return if parsing to typeUInt128is unsuccessful. UInt128.
Supported arguments:
- (U)Int8/16/32/64/128/256.
- Float32/64.
- String representations of (U)Int8/16/32/128/256.
Arguments for which the default value is returned:
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt128OrDefault('0xc0fe', CAST('0', 'UInt128'));.
If the input value cannot be represented within the bounds of UInt128, overflow or underflow of the result occurs. This is not considered an error.
Returned value
- 128-bit unsigned integer value if successful, otherwise returns the default value if passed or
0if not. UInt128.
- The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
- The default value type should be the same as the cast type.
Example
Query:
Result:
See also
toUInt256
Converts an input value to a value of type UInt256. Throws an exception in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression.
Supported arguments:
- Values or string representations of type (U)Int8/16/32/64/128/256.
- Values of type Float32/64.
Unsupported arguments:
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt256('0xc0fe');.
If the input value cannot be represented within the bounds of UInt256, the result over or under flows. This is not considered an error.
Returned value
- 256-bit unsigned integer value. Int256.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toUInt256OrZero
Like toUInt256, this function converts an input value to a value of type UInt256 but returns 0 in case of an error.
Syntax
Arguments
x— A String representation of a number. String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return 0):
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt256OrZero('0xc0fe');.
If the input value cannot be represented within the bounds of UInt256, overflow or underflow of the result occurs. This is not considered an error.
Returned value
- 256-bit unsigned integer value if successful, otherwise
0. UInt256.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toUInt256OrNull
Like toUInt256, this function converts an input value to a value of type UInt256 but returns NULL in case of an error.
Syntax
Arguments
x— A String representation of a number. String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return \N)
- String representations of Float32/64 values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt256OrNull('0xc0fe');.
If the input value cannot be represented within the bounds of UInt256, overflow or underflow of the result occurs. This is not considered an error.
Returned value
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Example
Query:
Result:
See also
toUInt256OrDefault
Like toUInt256, this function converts an input value to a value of type UInt256 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression / String.default(optional) — The default value to return if parsing to typeUInt256is unsuccessful. UInt256.
Supported arguments:
- Values or string representations of type (U)Int8/16/32/64/128/256.
- Values of type Float32/64.
Arguments for which the default value is returned:
- String representations of Float32/64 values, including
NaNandInf - String representations of binary and hexadecimal values, e.g.
SELECT toUInt256OrDefault('0xc0fe', CAST('0', 'UInt256'));
If the input value cannot be represented within the bounds of UInt256, overflow or underflow of the result occurs. This is not considered an error.
Returned value
- 256-bit unsigned integer value if successful, otherwise returns the default value if passed or
0if not. UInt256.
- The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
- The default value type should be the same as the cast type.
Example
Query:
Result:
See also
toFloat32
Converts an input value to a value of type Float32. Throws an exception in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression.
Supported arguments:
- Values of type (U)Int8/16/32/64/128/256.
- String representations of (U)Int8/16/32/128/256.
- Values of type Float32/64, including
NaNandInf. - String representations of Float32/64, including
NaNandInf(case-insensitive).
Unsupported arguments:
- String representations of binary and hexadecimal values, e.g.
SELECT toFloat32('0xc0fe');.
Returned value
- 32-bit floating point value. Float32.
Example
Query:
Result:
See also
toFloat32OrZero
Like toFloat32, this function converts an input value to a value of type Float32 but returns 0 in case of an error.
Syntax
Arguments
x— A String representation of a number. String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256, Float32/64.
Unsupported arguments (return 0):
- String representations of binary and hexadecimal values, e.g.
SELECT toFloat32OrZero('0xc0fe');.
Returned value
- 32-bit Float value if successful, otherwise
0. Float32.
Example
Query:
Result:
See also
toFloat32OrNull
Like toFloat32, this function converts an input value to a value of type Float32 but returns NULL in case of an error.
Syntax
Arguments
x— A String representation of a number. String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256, Float32/64.
Unsupported arguments (return \N):
- String representations of binary and hexadecimal values, e.g.
SELECT toFloat32OrNull('0xc0fe');.
Returned value
- 32-bit Float value if successful, otherwise
\N. Float32.
Example
Query:
Result:
See also
toFloat32OrDefault
Like toFloat32, this function converts an input value to a value of type Float32 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression / String.default(optional) — The default value to return if parsing to typeFloat32is unsuccessful. Float32.
Supported arguments:
- Values of type (U)Int8/16/32/64/128/256.
- String representations of (U)Int8/16/32/128/256.
- Values of type Float32/64, including
NaNandInf. - String representations of Float32/64, including
NaNandInf(case-insensitive).
Arguments for which the default value is returned:
- String representations of binary and hexadecimal values, e.g.
SELECT toFloat32OrDefault('0xc0fe', CAST('0', 'Float32'));.
Returned value
- 32-bit Float value if successful, otherwise returns the default value if passed or
0if not. Float32.
Example
Query:
Result:
See also
toFloat64
Converts an input value to a value of type Float64. Throws an exception in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression.
Supported arguments:
- Values of type (U)Int8/16/32/64/128/256.
- String representations of (U)Int8/16/32/128/256.
- Values of type Float32/64, including
NaNandInf. - String representations of type Float32/64, including
NaNandInf(case-insensitive).
Unsupported arguments:
- String representations of binary and hexadecimal values, e.g.
SELECT toFloat64('0xc0fe');.
Returned value
- 64-bit floating point value. Float64.
Example
Query:
Result:
See also
toFloat64OrZero
Like toFloat64, this function converts an input value to a value of type Float64 but returns 0 in case of an error.
Syntax
Arguments
x— A String representation of a number. String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256, Float32/64.
Unsupported arguments (return 0):
- String representations of binary and hexadecimal values, e.g.
SELECT toFloat64OrZero('0xc0fe');.
Returned value
- 64-bit Float value if successful, otherwise
0. Float64.
Example
Query:
Result:
See also
toFloat64OrNull
Like toFloat64, this function converts an input value to a value of type Float64 but returns NULL in case of an error.
Syntax
Arguments
x— A String representation of a number. String.
Supported arguments:
- String representations of (U)Int8/16/32/128/256, Float32/64.
Unsupported arguments (return \N):
- String representations of binary and hexadecimal values, e.g.
SELECT toFloat64OrNull('0xc0fe');.
Returned value
- 64-bit Float value if successful, otherwise
\N. Float64.
Example
Query:
Result:
See also
toFloat64OrDefault
Like toFloat64, this function converts an input value to a value of type Float64 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression / String.default(optional) — The default value to return if parsing to typeFloat64is unsuccessful. Float64.
Supported arguments:
- Values of type (U)Int8/16/32/64/128/256.
- String representations of (U)Int8/16/32/128/256.
- Values of type Float32/64, including
NaNandInf. - String representations of Float32/64, including
NaNandInf(case-insensitive).
Arguments for which the default value is returned:
- String representations of binary and hexadecimal values, e.g.
SELECT toFloat64OrDefault('0xc0fe', CAST('0', 'Float64'));.
Returned value
- 64-bit Float value if successful, otherwise returns the default value if passed or
0if not. Float64.
Example
Query:
Result:
See also
toBFloat16
Converts an input value to a value of type BFloat16.
Throws an exception in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression.
Supported arguments:
- Values of type (U)Int8/16/32/64/128/256.
- String representations of (U)Int8/16/32/128/256.
- Values of type Float32/64, including
NaNandInf. - String representations of Float32/64, including
NaNandInf(case-insensitive).
Returned value
- 16-bit brain-float value. BFloat16.
Example
See also
toBFloat16OrZero
Converts a String input value to a value of type BFloat16.
If the string does not represent a floating point value, the function returns zero.
Syntax
Arguments
x— A String representation of a number. String.
Supported arguments:
- String representations of numeric values.
Unsupported arguments (return 0):
- String representations of binary and hexadecimal values.
- Numeric values.
Returned value
- 16-bit brain-float value, otherwise
0. BFloat16.
The function allows a silent loss of precision while converting from the string representation.
Example
See also
toBFloat16OrNull
Converts a String input value to a value of type BFloat16
but if the string does not represent a floating point value, the function returns NULL.
Syntax
Arguments
x— A String representation of a number. String.
Supported arguments:
- String representations of numeric values.
Unsupported arguments (return NULL):
- String representations of binary and hexadecimal values.
- Numeric values.
Returned value
- 16-bit brain-float value, otherwise
NULL(\N). BFloat16.
The function allows a silent loss of precision while converting from the string representation.
Example
See also
toDate
Converts the argument to Date data type.
If the argument is DateTime or DateTime64, it truncates it and leaves the date component of the DateTime:
If the argument is a String, it is parsed as Date or DateTime. If it was parsed as DateTime, the date component is being used:
If the argument is a number and looks like a UNIX timestamp (is greater than 65535), it is interpreted as a DateTime, then truncated to Date in the current timezone. The timezone argument can be specified as a second argument of the function. The truncation to Date depends on the timezone:
The example above demonstrates how the same UNIX timestamp can be interpreted as different dates in different time zones.
If the argument is a number and it is smaller than 65536, it is interpreted as the number of days since 1970-01-01 (the first UNIX day) and converted to Date. It corresponds to the internal numeric representation of the Date data type. Example:
This conversion does not depend on timezones.
If the argument does not fit in the range of the Date type, it results in an implementation-defined behavior, that can saturate to the maximum supported date or overflow:
The function toDate can be also written in alternative forms:
toDateOrZero
The same as toDate but returns lower boundary of Date if an invalid argument is received. Only String argument is supported.
Example
Query:
Result:
toDateOrNull
The same as toDate but returns NULL if an invalid argument is received. Only String argument is supported.
Example
Query:
Result:
toDateOrDefault
Like toDate but if unsuccessful, returns a default value which is either the second argument (if specified), or otherwise the lower boundary of Date.
Syntax
Example
Query:
Result:
toDateTime
Converts an input value to DateTime.
Syntax
Arguments
If expr is a number, it is interpreted as the number of seconds since the beginning of the Unix Epoch (as Unix timestamp).
If expr is a String, it may be interpreted as a Unix timestamp or as a string representation of date / date with time.
Thus, parsing of short numbers' string representations (up to 4 digits) is explicitly disabled due to ambiguity, e.g. a string '1999' may be both a year (an incomplete string representation of Date / DateTime) or a unix timestamp. Longer numeric strings are allowed.
Returned value
- A date time. DateTime
Example
Query:
Result:
toDateTimeOrZero
The same as toDateTime but returns lower boundary of DateTime if an invalid argument is received. Only String argument is supported.
Example
Query:
Result:
toDateTimeOrNull
The same as toDateTime but returns NULL if an invalid argument is received. Only String argument is supported.
Example
Query:
Result:
toDateTimeOrDefault
Like toDateTime but if unsuccessful, returns a default value which is either the third argument (if specified), or otherwise the lower boundary of DateTime.
Syntax
Example
Query:
Result:
toDate32
Converts the argument to the Date32 data type. If the value is outside the range, toDate32 returns the border values supported by Date32. If the argument has Date type, it's borders are taken into account.
Syntax
Arguments
Returned value
- A calendar date. Type Date32.
Example
- The value is within the range:
- The value is outside the range:
- With Date argument:
toDate32OrZero
The same as toDate32 but returns the min value of Date32 if an invalid argument is received.
Example
Query:
Result:
toDate32OrNull
The same as toDate32 but returns NULL if an invalid argument is received.
Example
Query:
Result:
toDate32OrDefault
Converts the argument to the Date32 data type. If the value is outside the range, toDate32OrDefault returns the lower border value supported by Date32. If the argument has Date type, it's borders are taken into account. Returns default value if an invalid argument is received.
Example
Query:
Result:
toDateTime64
Converts an input value to a value of type DateTime64.
Syntax
Arguments
expr— The value. String, UInt32, Float or DateTime.scale- Tick size (precision): 10-precision seconds. Valid range: [ 0 : 9 ].timezone(optional) - Time zone of the specified datetime64 object.
Returned value
- A calendar date and time of day, with sub-second precision. DateTime64.
Example
- The value is within the range:
- As decimal with precision:
Without the decimal point the value is still treated as Unix Timestamp in seconds:
- With
timezone:
toDateTime64OrZero
Like toDateTime64, this function converts an input value to a value of type DateTime64 but returns the min value of DateTime64 if an invalid argument is received.
Syntax
Arguments
expr— The value. String, UInt32, Float or DateTime.scale- Tick size (precision): 10-precision seconds. Valid range: [ 0 : 9 ].timezone(optional) - Time zone of the specified DateTime64 object.
Returned value
- A calendar date and time of day, with sub-second precision, otherwise the minimum value of
DateTime64:1970-01-01 01:00:00.000. DateTime64.
Example
Query:
Result:
See also
toDateTime64OrNull
Like toDateTime64, this function converts an input value to a value of type DateTime64 but returns NULL if an invalid argument is received.
Syntax
Arguments
expr— The value. String, UInt32, Float or DateTime.scale- Tick size (precision): 10-precision seconds. Valid range: [ 0 : 9 ].timezone(optional) - Time zone of the specified DateTime64 object.
Returned value
- A calendar date and time of day, with sub-second precision, otherwise
NULL. DateTime64/NULL.
Example
Query:
Result:
See also
toDateTime64OrDefault
Like toDateTime64, this function converts an input value to a value of type DateTime64, but returns either the default value of DateTime64 or the provided default if an invalid argument is received.
Syntax
Arguments
expr— The value. String, UInt32, Float or DateTime.scale- Tick size (precision): 10-precision seconds. Valid range: [ 0 : 9 ].timezone(optional) - Time zone of the specified DateTime64 object.default(optional) - Default value to return if an invalid argument is received. DateTime64.
Returned value
- A calendar date and time of day, with sub-second precision, otherwise the minimum value of
DateTime64or thedefaultvalue if provided. DateTime64.
Example
Query:
Result:
See also
toDecimal32
Converts an input value to a value of type Decimal(9, S) with scale of S. Throws an exception in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression.S— Scale parameter between 0 and 9, specifying how many digits the fractional part of a number can have. UInt8.
Supported arguments:
- Values or string representations of type (U)Int8/16/32/64/128/256.
- Values or string representations of type Float32/64.
Unsupported arguments:
- Values or string representations of Float32/64 values
NaNandInf(case-insensitive). - String representations of binary and hexadecimal values, e.g.
SELECT toDecimal32('0xc0fe', 1);.
An overflow can occur if the value of expr exceeds the bounds of Decimal32: ( -1 * 10^(9 - S), 1 * 10^(9 - S) ).
Excessive digits in a fraction are discarded (not rounded).
Excessive digits in the integer part will lead to an exception.
Conversions drop extra digits and could operate in an unexpected way when working with Float32/Float64 inputs as the operations are performed using floating point instructions.
For example: toDecimal32(1.15, 2) is equal to 1.14 because 1.15 * 100 in floating point is 114.99.
You can use a String input so the operations use the underlying integer type: toDecimal32('1.15', 2) = 1.15
Returned value
- Value of type
Decimal(9, S). Decimal32(S).
Example
Query:
Result:
See also
toDecimal32OrZero
Like toDecimal32, this function converts an input value to a value of type Decimal(9, S) but returns 0 in case of an error.
Syntax
Arguments
expr— A String representation of a number. String.S— Scale parameter between 0 and 9, specifying how many digits the fractional part of a number can have. UInt8.
Supported arguments:
- String representations of type (U)Int8/16/32/64/128/256.
- String representations of type Float32/64.
Unsupported arguments:
- String representations of Float32/64 values
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toDecimal32OrZero('0xc0fe', 1);.
An overflow can occur if the value of expr exceeds the bounds of Decimal32: ( -1 * 10^(9 - S), 1 * 10^(9 - S) ).
Excessive digits in a fraction are discarded (not rounded).
Excessive digits in the integer part will lead to an error.
Returned value
- Value of type
Decimal(9, S)if successful, otherwise0withSdecimal places. Decimal32(S).
Example
Query:
Result:
See also
toDecimal32OrNull
Like toDecimal32, this function converts an input value to a value of type Nullable(Decimal(9, S)) but returns 0 in case of an error.
Syntax
Arguments
expr— A String representation of a number. String.S— Scale parameter between 0 and 9, specifying how many digits the fractional part of a number can have. UInt8.
Supported arguments:
- String representations of type (U)Int8/16/32/64/128/256.
- String representations of type Float32/64.
Unsupported arguments:
- String representations of Float32/64 values
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toDecimal32OrNull('0xc0fe', 1);.
An overflow can occur if the value of expr exceeds the bounds of Decimal32: ( -1 * 10^(9 - S), 1 * 10^(9 - S) ).
Excessive digits in a fraction are discarded (not rounded).
Excessive digits in the integer part will lead to an error.
Returned value
- Value of type
Nullable(Decimal(9, S))if successful, otherwise valueNULLof the same type. Decimal32(S).
Examples
Query:
Result:
See also
toDecimal32OrDefault
Like toDecimal32, this function converts an input value to a value of type Decimal(9, S) but returns the default value in case of an error.
Syntax
Arguments
expr— A String representation of a number. String.S— Scale parameter between 0 and 9, specifying how many digits the fractional part of a number can have. UInt8.default(optional) — The default value to return if parsing to typeDecimal32(S)is unsuccessful. Decimal32(S).
Supported arguments:
- String representations of type (U)Int8/16/32/64/128/256.
- String representations of type Float32/64.
Unsupported arguments:
- String representations of Float32/64 values
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toDecimal32OrDefault('0xc0fe', 1);.
An overflow can occur if the value of expr exceeds the bounds of Decimal32: ( -1 * 10^(9 - S), 1 * 10^(9 - S) ).
Excessive digits in a fraction are discarded (not rounded).
Excessive digits in the integer part will lead to an error.
Conversions drop extra digits and could operate in an unexpected way when working with Float32/Float64 inputs as the operations are performed using floating point instructions.
For example: toDecimal32OrDefault(1.15, 2) is equal to 1.14 because 1.15 * 100 in floating point is 114.99.
You can use a String input so the operations use the underlying integer type: toDecimal32OrDefault('1.15', 2) = 1.15
Returned value
- Value of type
Decimal(9, S)if successful, otherwise returns the default value if passed or0if not. Decimal32(S).
Examples
Query:
Result:
See also
toDecimal64
Converts an input value to a value of type Decimal(18, S) with scale of S. Throws an exception in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression.S— Scale parameter between 0 and 18, specifying how many digits the fractional part of a number can have. UInt8.
Supported arguments:
- Values or string representations of type (U)Int8/16/32/64/128/256.
- Values or string representations of type Float32/64.
Unsupported arguments:
- Values or string representations of Float32/64 values
NaNandInf(case-insensitive). - String representations of binary and hexadecimal values, e.g.
SELECT toDecimal64('0xc0fe', 1);.
An overflow can occur if the value of expr exceeds the bounds of Decimal64: ( -1 * 10^(18 - S), 1 * 10^(18 - S) ).
Excessive digits in a fraction are discarded (not rounded).
Excessive digits in the integer part will lead to an exception.
Conversions drop extra digits and could operate in an unexpected way when working with Float32/Float64 inputs as the operations are performed using floating point instructions.
For example: toDecimal64(1.15, 2) is equal to 1.14 because 1.15 * 100 in floating point is 114.99.
You can use a String input so the operations use the underlying integer type: toDecimal64('1.15', 2) = 1.15
Returned value
- Value of type
Decimal(18, S). Decimal64(S).
Example
Query:
Result:
See also
toDecimal64OrZero
Like toDecimal64, this function converts an input value to a value of type Decimal(18, S) but returns 0 in case of an error.
Syntax
Arguments
expr— A String representation of a number. String.S— Scale parameter between 0 and 18, specifying how many digits the fractional part of a number can have. UInt8.
Supported arguments:
- String representations of type (U)Int8/16/32/64/128/256.
- String representations of type Float32/64.
Unsupported arguments:
- String representations of Float32/64 values
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toDecimal64OrZero('0xc0fe', 1);.
An overflow can occur if the value of expr exceeds the bounds of Decimal64: ( -1 * 10^(18 - S), 1 * 10^(18 - S) ).
Excessive digits in a fraction are discarded (not rounded).
Excessive digits in the integer part will lead to an error.
Returned value
- Value of type
Decimal(18, S)if successful, otherwise0withSdecimal places. Decimal64(S).
Example
Query:
Result:
See also
toDecimal64OrNull
Like toDecimal64, this function converts an input value to a value of type Nullable(Decimal(18, S)) but returns 0 in case of an error.
Syntax
Arguments
expr— A String representation of a number. String.S— Scale parameter between 0 and 18, specifying how many digits the fractional part of a number can have. UInt8.
Supported arguments:
- String representations of type (U)Int8/16/32/64/128/256.
- String representations of type Float32/64.
Unsupported arguments:
- String representations of Float32/64 values
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toDecimal64OrNull('0xc0fe', 1);.
An overflow can occur if the value of expr exceeds the bounds of Decimal64: ( -1 * 10^(18 - S), 1 * 10^(18 - S) ).
Excessive digits in a fraction are discarded (not rounded).
Excessive digits in the integer part will lead to an error.
Returned value
- Value of type
Nullable(Decimal(18, S))if successful, otherwise valueNULLof the same type. Decimal64(S).
Examples
Query:
Result:
See also
toDecimal64OrDefault
Like toDecimal64, this function converts an input value to a value of type Decimal(18, S) but returns the default value in case of an error.
Syntax
Arguments
expr— A String representation of a number. String.S— Scale parameter between 0 and 18, specifying how many digits the fractional part of a number can have. UInt8.default(optional) — The default value to return if parsing to typeDecimal64(S)is unsuccessful. Decimal64(S).
Supported arguments:
- String representations of type (U)Int8/16/32/64/128/256.
- String representations of type Float32/64.
Unsupported arguments:
- String representations of Float32/64 values
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toDecimal64OrDefault('0xc0fe', 1);.
An overflow can occur if the value of expr exceeds the bounds of Decimal64: ( -1 * 10^(18 - S), 1 * 10^(18 - S) ).
Excessive digits in a fraction are discarded (not rounded).
Excessive digits in the integer part will lead to an error.
Conversions drop extra digits and could operate in an unexpected way when working with Float32/Float64 inputs as the operations are performed using floating point instructions.
For example: toDecimal64OrDefault(1.15, 2) is equal to 1.14 because 1.15 * 100 in floating point is 114.99.
You can use a String input so the operations use the underlying integer type: toDecimal64OrDefault('1.15', 2) = 1.15
Returned value
- Value of type
Decimal(18, S)if successful, otherwise returns the default value if passed or0if not. Decimal64(S).
Examples
Query:
Result:
See also
toDecimal128
Converts an input value to a value of type Decimal(38, S) with scale of S. Throws an exception in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression.S— Scale parameter between 0 and 38, specifying how many digits the fractional part of a number can have. UInt8.
Supported arguments:
- Values or string representations of type (U)Int8/16/32/64/128/256.
- Values or string representations of type Float32/64.
Unsupported arguments:
- Values or string representations of Float32/64 values
NaNandInf(case-insensitive). - String representations of binary and hexadecimal values, e.g.
SELECT toDecimal128('0xc0fe', 1);.
An overflow can occur if the value of expr exceeds the bounds of Decimal128: ( -1 * 10^(38 - S), 1 * 10^(38 - S) ).
Excessive digits in a fraction are discarded (not rounded).
Excessive digits in the integer part will lead to an exception.
Conversions drop extra digits and could operate in an unexpected way when working with Float32/Float64 inputs as the operations are performed using floating point instructions.
For example: toDecimal128(1.15, 2) is equal to 1.14 because 1.15 * 100 in floating point is 114.99.
You can use a String input so the operations use the underlying integer type: toDecimal128('1.15', 2) = 1.15
Returned value
- Value of type
Decimal(38, S). Decimal128(S).
Example
Query:
Result:
See also
toDecimal128OrZero
Like toDecimal128, this function converts an input value to a value of type Decimal(38, S) but returns 0 in case of an error.
Syntax
Arguments
expr— A String representation of a number. String.S— Scale parameter between 0 and 38, specifying how many digits the fractional part of a number can have. UInt8.
Supported arguments:
- String representations of type (U)Int8/16/32/64/128/256.
- String representations of type Float32/64.
Unsupported arguments:
- String representations of Float32/64 values
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toDecimal128OrZero('0xc0fe', 1);.
An overflow can occur if the value of expr exceeds the bounds of Decimal128: ( -1 * 10^(38 - S), 1 * 10^(38 - S) ).
Excessive digits in a fraction are discarded (not rounded).
Excessive digits in the integer part will lead to an error.
Returned value
- Value of type
Decimal(38, S)if successful, otherwise0withSdecimal places. Decimal128(S).
Example
Query:
Result:
See also
toDecimal128OrNull
Like toDecimal128, this function converts an input value to a value of type Nullable(Decimal(38, S)) but returns 0 in case of an error.
Syntax
Arguments
expr— A String representation of a number. String.S— Scale parameter between 0 and 38, specifying how many digits the fractional part of a number can have. UInt8.
Supported arguments:
- String representations of type (U)Int8/16/32/64/128/256.
- String representations of type Float32/64.
Unsupported arguments:
- String representations of Float32/64 values
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toDecimal128OrNull('0xc0fe', 1);.
An overflow can occur if the value of expr exceeds the bounds of Decimal128: ( -1 * 10^(38 - S), 1 * 10^(38 - S) ).
Excessive digits in a fraction are discarded (not rounded).
Excessive digits in the integer part will lead to an error.
Returned value
- Value of type
Nullable(Decimal(38, S))if successful, otherwise valueNULLof the same type. Decimal128(S).
Examples
Query:
Result:
See also
toDecimal128OrDefault
Like toDecimal128, this function converts an input value to a value of type Decimal(38, S) but returns the default value in case of an error.
Syntax
Arguments
expr— A String representation of a number. String.S— Scale parameter between 0 and 38, specifying how many digits the fractional part of a number can have. UInt8.default(optional) — The default value to return if parsing to typeDecimal128(S)is unsuccessful. Decimal128(S).
Supported arguments:
- String representations of type (U)Int8/16/32/64/128/256.
- String representations of type Float32/64.
Unsupported arguments:
- String representations of Float32/64 values
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toDecimal128OrDefault('0xc0fe', 1);.
An overflow can occur if the value of expr exceeds the bounds of Decimal128: ( -1 * 10^(38 - S), 1 * 10^(38 - S) ).
Excessive digits in a fraction are discarded (not rounded).
Excessive digits in the integer part will lead to an error.
Conversions drop extra digits and could operate in an unexpected way when working with Float32/Float64 inputs as the operations are performed using floating point instructions.
For example: toDecimal128OrDefault(1.15, 2) is equal to 1.14 because 1.15 * 100 in floating point is 114.99.
You can use a String input so the operations use the underlying integer type: toDecimal128OrDefault('1.15', 2) = 1.15
Returned value
- Value of type
Decimal(38, S)if successful, otherwise returns the default value if passed or0if not. Decimal128(S).
Examples
Query:
Result:
See also
toDecimal256
Converts an input value to a value of type Decimal(76, S) with scale of S. Throws an exception in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Expression.S— Scale parameter between 0 and 76, specifying how many digits the fractional part of a number can have. UInt8.
Supported arguments:
- Values or string representations of type (U)Int8/16/32/64/128/256.
- Values or string representations of type Float32/64.
Unsupported arguments:
- Values or string representations of Float32/64 values
NaNandInf(case-insensitive). - String representations of binary and hexadecimal values, e.g.
SELECT toDecimal256('0xc0fe', 1);.
An overflow can occur if the value of expr exceeds the bounds of Decimal256: ( -1 * 10^(76 - S), 1 * 10^(76 - S) ).
Excessive digits in a fraction are discarded (not rounded).
Excessive digits in the integer part will lead to an exception.
Conversions drop extra digits and could operate in an unexpected way when working with Float32/Float64 inputs as the operations are performed using floating point instructions.
For example: toDecimal256(1.15, 2) is equal to 1.14 because 1.15 * 100 in floating point is 114.99.
You can use a String input so the operations use the underlying integer type: toDecimal256('1.15', 2) = 1.15
Returned value
- Value of type
Decimal(76, S). Decimal256(S).
Example
Query:
Result:
See also
toDecimal256OrZero
Like toDecimal256, this function converts an input value to a value of type Decimal(76, S) but returns 0 in case of an error.
Syntax
Arguments
expr— A String representation of a number. String.S— Scale parameter between 0 and 76, specifying how many digits the fractional part of a number can have. UInt8.
Supported arguments:
- String representations of type (U)Int8/16/32/64/128/256.
- String representations of type Float32/64.
Unsupported arguments:
- String representations of Float32/64 values
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toDecimal256OrZero('0xc0fe', 1);.
An overflow can occur if the value of expr exceeds the bounds of Decimal256: ( -1 * 10^(76 - S), 1 * 10^(76 - S) ).
Excessive digits in a fraction are discarded (not rounded).
Excessive digits in the integer part will lead to an error.
Returned value
- Value of type
Decimal(76, S)if successful, otherwise0withSdecimal places. Decimal256(S).
Example
Query:
Result:
See also
toDecimal256OrNull
Like toDecimal256, this function converts an input value to a value of type Nullable(Decimal(76, S)) but returns 0 in case of an error.
Syntax
Arguments
expr— A String representation of a number. String.S— Scale parameter between 0 and 76, specifying how many digits the fractional part of a number can have. UInt8.
Supported arguments:
- String representations of type (U)Int8/16/32/64/128/256.
- String representations of type Float32/64.
Unsupported arguments:
- String representations of Float32/64 values
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toDecimal256OrNull('0xc0fe', 1);.
An overflow can occur if the value of expr exceeds the bounds of Decimal256: ( -1 * 10^(76 - S), 1 * 10^(76 - S) ).
Excessive digits in a fraction are discarded (not rounded).
Excessive digits in the integer part will lead to an error.
Returned value
- Value of type
Nullable(Decimal(76, S))if successful, otherwise valueNULLof the same type. Decimal256(S).
Examples
Query:
Result:
See also
toDecimal256OrDefault
Like toDecimal256, this function converts an input value to a value of type Decimal(76, S) but returns the default value in case of an error.
Syntax
Arguments
expr— A String representation of a number. String.S— Scale parameter between 0 and 76, specifying how many digits the fractional part of a number can have. UInt8.default(optional) — The default value to return if parsing to typeDecimal256(S)is unsuccessful. Decimal256(S).
Supported arguments:
- String representations of type (U)Int8/16/32/64/128/256.
- String representations of type Float32/64.
Unsupported arguments:
- String representations of Float32/64 values
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toDecimal256OrDefault('0xc0fe', 1);.
An overflow can occur if the value of expr exceeds the bounds of Decimal256: ( -1 * 10^(76 - S), 1 * 10^(76 - S) ).
Excessive digits in a fraction are discarded (not rounded).
Excessive digits in the integer part will lead to an error.
Conversions drop extra digits and could operate in an unexpected way when working with Float32/Float64 inputs as the operations are performed using floating point instructions.
For example: toDecimal256OrDefault(1.15, 2) is equal to 1.14 because 1.15 * 100 in floating point is 114.99.
You can use a String input so the operations use the underlying integer type: toDecimal256OrDefault('1.15', 2) = 1.15
Returned value
- Value of type
Decimal(76, S)if successful, otherwise returns the default value if passed or0if not. Decimal256(S).
Examples
Query:
Result:
See also
toString
Converts values to their string representation. For DateTime arguments, the function can take a second String argument containing the name of the time zone.
Syntax
Arguments
value: Value to convert to string.Any.timezone: Optional. Timezone name forDateTimeconversion.String.
Returned value
- Returns a string representation of the input value.
String.
Examples
Usage example
toFixedString
Converts a String type argument to a FixedString(N) type (a string of fixed length N). If the string has fewer bytes than N, it is padded with null bytes to the right. If the string has more bytes than N, an exception is thrown.
Syntax
Arguments
Returned value
- An N length fixed string of
s. FixedString.
Example
Query:
Result:
toStringCutToZero
Accepts a String or FixedString argument. Returns the String with the content truncated at the first zero byte found.
Syntax
Example
Query:
Result:
Query:
Result:
toDecimalString
Converts a numeric value to String with the number of fractional digits in the output specified by the user.
Syntax
Arguments
number— Value to be represented as String, Int, UInt, Float, Decimal,scale— Number of fractional digits, UInt8.
Returned value
- Input value represented as String with given number of fractional digits (scale). The number is rounded up or down according to common arithmetic in case requested scale is smaller than original number's scale.
Example
Query:
Result:
reinterpretAsUInt8
Performs byte reinterpretation by treating the input value as a value of type UInt8. Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is meaningless.
Syntax
Parameters
Returned value
- Reinterpreted value
xas UInt8. UInt8.
Example
Query:
Result:
reinterpretAsUInt16
Performs byte reinterpretation by treating the input value as a value of type UInt16. Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is meaningless.
Syntax
Parameters
x: value to byte reinterpret as UInt16. (U)Int*, Float, Date, DateTime, UUID, String or FixedString.
Returned value
- Reinterpreted value
xas UInt16. UInt16.
Example
Query:
Result:
reinterpretAsUInt32
Performs byte reinterpretation by treating the input value as a value of type UInt32. Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is meaningless.
Syntax
Parameters
x: value to byte reinterpret as UInt32. (U)Int*, Float, Date, DateTime, UUID, String or FixedString.
Returned value
- Reinterpreted value
xas UInt32. UInt32.
Example
Query:
Result:
reinterpretAsUInt64
Performs byte reinterpretation by treating the input value as a value of type UInt64. Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is meaningless.
Syntax
Parameters
x: value to byte reinterpret as UInt64. (U)Int*, Float, Date, DateTime, UUID, String or FixedString.
Returned value
- Reinterpreted value
xas UInt64. UInt64.
Example
Query:
Result:
reinterpretAsUInt128
Performs byte reinterpretation by treating the input value as a value of type UInt128. Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is meaningless.
Syntax
Parameters
x: value to byte reinterpret as UInt128. (U)Int*, Float, Date, DateTime, UUID, String or FixedString.
Returned value
- Reinterpreted value
xas UInt128. UInt128.
Example
Query:
Result:
reinterpretAsUInt256
Performs byte reinterpretation by treating the input value as a value of type UInt256. Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is meaningless.
Syntax
Parameters
x: value to byte reinterpret as UInt256. (U)Int*, Float, Date, DateTime, UUID, String or FixedString.
Returned value
- Reinterpreted value
xas UInt256. UInt256.
Example
Query:
Result:
reinterpretAsInt8
Performs byte reinterpretation by treating the input value as a value of type Int8. Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is meaningless.
Syntax
Parameters
Returned value
- Reinterpreted value
xas Int8. Int8.
Example
Query:
Result:
reinterpretAsInt16
Performs byte reinterpretation by treating the input value as a value of type Int16. Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is meaningless.
Syntax
Parameters
Returned value
- Reinterpreted value
xas Int16. Int16.
Example
Query:
Result:
reinterpretAsInt32
Performs byte reinterpretation by treating the input value as a value of type Int32. Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is meaningless.
Syntax
Parameters
Returned value
- Reinterpreted value
xas Int32. Int32.
Example
Query:
Result:
reinterpretAsInt64
Performs byte reinterpretation by treating the input value as a value of type Int64. Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is meaningless.
Syntax
Parameters
Returned value
- Reinterpreted value
xas Int64. Int64.
Example
Query:
Result:
reinterpretAsInt128
Performs byte reinterpretation by treating the input value as a value of type Int128. Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is meaningless.
Syntax
Parameters
x: value to byte reinterpret as Int128. (U)Int*, Float, Date, DateTime, UUID, String or FixedString.
Returned value
- Reinterpreted value
xas Int128. Int128.
Example
Query:
Result:
reinterpretAsInt256
Performs byte reinterpretation by treating the input value as a value of type Int256. Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is meaningless.
Syntax
Parameters
x: value to byte reinterpret as Int256. (U)Int*, Float, Date, DateTime, UUID, String or FixedString.
Returned value
- Reinterpreted value
xas Int256. Int256.
Example
Query:
Result:
reinterpretAsFloat32
Performs byte reinterpretation by treating the input value as a value of type Float32. Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is meaningless.
Syntax
Parameters
Returned value
- Reinterpreted value
xas Float32. Float32.
Example
Query:
Result:
reinterpretAsFloat64
Performs byte reinterpretation by treating the input value as a value of type Float64. Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is meaningless.
Syntax
Parameters
Returned value
- Reinterpreted value
xas Float64. Float64.
Example
Query:
Result:
reinterpretAsDate
Accepts a string, fixed string or numeric value and interprets the bytes as a number in host order (little endian). It returns a date from the interpreted number as the number of days since the beginning of the Unix Epoch.
Syntax
Parameters
x: number of days since the beginning of the Unix Epoch. (U)Int*, Float, Date, DateTime, UUID, String or FixedString.
Returned value
- Date. Date.
Implementation details
If the provided string isn't long enough, the function works as if the string is padded with the necessary number of null bytes. If the string is longer than needed, the extra bytes are ignored.
Example
Query:
Result:
reinterpretAsDateTime
These functions accept a string and interpret the bytes placed at the beginning of the string as a number in host order (little endian). Returns a date with time interpreted as the number of seconds since the beginning of the Unix Epoch.
Syntax
Parameters
x: number of seconds since the beginning of the Unix Epoch. (U)Int*, Float, Date, DateTime, UUID, String or FixedString.
Returned value
- Date and Time. DateTime.
Implementation details
If the provided string isn't long enough, the function works as if the string is padded with the necessary number of null bytes. If the string is longer than needed, the extra bytes are ignored.
Example
Query:
Result:
reinterpretAsString
This function accepts a number, date or date with time and returns a string containing bytes representing the corresponding value in host order (little endian). Null bytes are dropped from the end. For example, a UInt32 type value of 255 is a string that is one byte long.
Syntax
Parameters
Returned value
- String containing bytes representing
x. String.
Example
Query:
Result:
reinterpretAsFixedString
This function accepts a number, date or date with time and returns a FixedString containing bytes representing the corresponding value in host order (little endian). Null bytes are dropped from the end. For example, a UInt32 type value of 255 is a FixedString that is one byte long.
Syntax
Parameters
Returned value
- Fixed string containing bytes representing
x. FixedString.
Example
Query:
Result:
reinterpretAsUUID
In addition to the UUID functions listed here, there is dedicated UUID function documentation.
Accepts a 16 byte string and returns a UUID by interpreting each 8-byte half in little-endian byte order. If the string isn't long enough, the function works as if the string is padded with the necessary number of null bytes to the end. If the string is longer than 16 bytes, the extra bytes at the end are ignored.
Syntax
Arguments
fixed_string— Big-endian byte string. FixedString.
Returned value
- The UUID type value. UUID.
Examples
String to UUID.
Query:
Result:
Going back and forth from String to UUID.
Query:
Result:
reinterpret
Uses the same source in-memory bytes sequence for x value and reinterprets it to destination type.
Syntax
Arguments
x— Any type.type— Destination type. If it is an array, then the array element type must be a fixed length type.
Returned value
- Destination type value.
Examples
Query:
Result:
Query:
Result:
CAST
Converts an input value to the specified data type. Unlike the reinterpret function, CAST tries to present the same value using the new data type. If the conversion can not be done then an exception is raised.
Several syntax variants are supported.
Syntax
Arguments
x— A value to convert. May be of any type.T— The name of the target data type. String.t— The target data type.
Returned value
- Converted value.
If the input value does not fit the bounds of the target type, the result overflows. For example, CAST(-1, 'UInt8') returns 255.
Examples
Query:
Result:
Query:
Result:
Conversion to FixedString (N) only works for arguments of type String or FixedString.
Type conversion to Nullable and back is supported.
Example
Query:
Result:
Query:
Result:
See also
- cast_keep_nullable setting
accurateCast(x, T)
Converts x to the T data type.
The difference from cast is that accurateCast does not allow overflow of numeric types during cast if type value x does not fit the bounds of type T. For example, accurateCast(-1, 'UInt8') throws an exception.
Example
Query:
Result:
Query:
Result:
accurateCastOrNull(x, T)
Converts input value x to the specified data type T. Always returns Nullable type and returns NULL if the cast value is not representable in the target type.
Syntax
Arguments
x— Input value.T— The name of the returned data type.
Returned value
- The value, converted to the specified data type
T.
Example
Query:
Result:
Query:
Result:
accurateCastOrDefault(x, T[, default_value])
Converts input value x to the specified data type T. Returns default type value or default_value if specified if the cast value is not representable in the target type.
Syntax
Arguments
x— Input value.T— The name of the returned data type.default_value— Default value of returned data type.
Returned value
- The value converted to the specified data type
T.
Example
Query:
Result:
Query:
Result:
toInterval
Creates an Interval data type value from a numeric value and interval unit (eg. 'second' or 'day').
Syntax
Arguments
-
value— Length of the interval. Integer numbers or string representations thereof, and float numbers. (U)Int*/Float*/String. -
unit— The type of interval to create. String Literal. Possible values:nanosecondmicrosecondmillisecondsecondminutehourdayweekmonthquarteryear
The
unitargument is case-insensitive.
Returned value
- The resulting interval. Interval
Example
toIntervalYear
Returns an interval of n years of data type IntervalYear.
Syntax
Arguments
n— Number of years. Integer numbers or string representations thereof, and float numbers. (U)Int*/Float*/String.
Returned values
- Interval of
nyears. IntervalYear.
Example
Query:
Result:
toIntervalQuarter
Returns an interval of n quarters of data type IntervalQuarter.
Syntax
Arguments
n— Number of quarters. Integer numbers or string representations thereof, and float numbers. (U)Int*/Float*/String.
Returned values
- Interval of
nquarters. IntervalQuarter.
Example
Query:
Result:
toIntervalMonth
Returns an interval of n months of data type IntervalMonth.
Syntax
Arguments
n— Number of months. Integer numbers or string representations thereof, and float numbers. (U)Int*/Float*/String.
Returned values
- Interval of
nmonths. IntervalMonth.
Example
Query:
Result:
toIntervalWeek
Returns an interval of n weeks of data type IntervalWeek.
Syntax
Arguments
n— Number of weeks. Integer numbers or string representations thereof, and float numbers. (U)Int*/Float*/String.
Returned values
- Interval of
nweeks. IntervalWeek.
Example
Query:
Result:
toIntervalDay
Returns an interval of n days of data type IntervalDay.
Syntax
Arguments
n— Number of days. Integer numbers or string representations thereof, and float numbers. (U)Int*/Float*/String.
Returned values
- Interval of
ndays. IntervalDay.
Example
Query:
Result:
toIntervalHour
Returns an interval of n hours of data type IntervalHour.
Syntax
Arguments
n— Number of hours. Integer numbers or string representations thereof, and float numbers. (U)Int*/Float*/String.
Returned values
- Interval of
nhours. IntervalHour.
Example
Query:
Result:
toIntervalMinute
Returns an interval of n minutes of data type IntervalMinute.
Syntax
Arguments
n— Number of minutes. Integer numbers or string representations thereof, and float numbers. (U)Int*/Float*/String.
Returned values
- Interval of
nminutes. IntervalMinute.
Example
Query:
Result:
toIntervalSecond
Returns an interval of n seconds of data type IntervalSecond.
Syntax
Arguments
n— Number of seconds. Integer numbers or string representations thereof, and float numbers. (U)Int*/Float*/String.
Returned values
- Interval of
nseconds. IntervalSecond.
Example
Query:
Result:
toIntervalMillisecond
Returns an interval of n milliseconds of data type IntervalMillisecond.
Syntax
Arguments
n— Number of milliseconds. Integer numbers or string representations thereof, and float numbers. (U)Int*/Float*/String.
Returned values
- Interval of
nmilliseconds. IntervalMilliseconds.
Example
Query:
Result:
toIntervalMicrosecond
Returns an interval of n microseconds of data type IntervalMicrosecond.
Syntax
Arguments
n— Number of microseconds. Integer numbers or string representations thereof, and float numbers. (U)Int*/Float*/String.
Returned values
- Interval of
nmicroseconds. IntervalMicrosecond.
Example
Query:
Result:
toIntervalNanosecond
Returns an interval of n nanoseconds of data type IntervalNanosecond.
Syntax
Arguments
n— Number of nanoseconds. Integer numbers or string representations thereof, and float numbers. (U)Int*/Float*/String.
Returned values
- Interval of
nnanoseconds. IntervalNanosecond.
Example
Query:
Result:
parseDateTime
Converts a String to DateTime according to a MySQL format string.
This function is the opposite operation of function formatDateTime.
Syntax
Arguments
str— The String to be parsedformat— The format string. Optional.%Y-%m-%d %H:%i:%sif not specified.timezone— Timezone. Optional.
Returned value(s)
Return a DateTime value parsed from the input string according to a MySQL-style format string.
Supported format specifiers
All format specifiers listed in formatDateTime except:
- %Q: Quarter (1-4)
Example
Alias: TO_TIMESTAMP.
parseDateTimeOrZero
Same as for parseDateTime except that it returns zero date when it encounters a date format that cannot be processed.
parseDateTimeOrNull
Same as for parseDateTime except that it returns NULL when it encounters a date format that cannot be processed.
Alias: str_to_date.
parseDateTimeInJodaSyntax
Similar to parseDateTime, except that the format string is in Joda instead of MySQL syntax.
This function is the opposite operation of function formatDateTimeInJodaSyntax.
Syntax
Arguments
str— The String to be parsedformat— The format string. Optional.yyyy-MM-dd HH:mm:ssif not specified.timezone— Timezone. Optional.
Returned value(s)
Return a DateTime value parsed from the input string according to a Joda-style format string.
Supported format specifiers
All format specifiers listed in formatDateTimeInJodaSyntax are supported, except:
- S: fraction of second
- z: time zone
- Z: time zone offset/id
Example
parseDateTimeInJodaSyntaxOrZero
Same as for parseDateTimeInJodaSyntax except that it returns zero date when it encounters a date format that cannot be processed.
parseDateTimeInJodaSyntaxOrNull
Same as for parseDateTimeInJodaSyntax except that it returns NULL when it encounters a date format that cannot be processed.
parseDateTime64
Converts a String to DateTime64 according to a MySQL format string.
Syntax
Arguments
str— The String to be parsed.format— The format string. Optional.%Y-%m-%d %H:%i:%s.%fif not specified.timezone— Timezone. Optional.
Returned value(s)
Return a DateTime64 value parsed from the input string according to a MySQL-style format string. The precision of the returned value is 6.
parseDateTime64OrZero
Same as for parseDateTime64 except that it returns zero date when it encounters a date format that cannot be processed.
parseDateTime64OrNull
Same as for parseDateTime64 except that it returns NULL when it encounters a date format that cannot be processed.
parseDateTime64InJodaSyntax
Converts a String to DateTime64 according to a Joda format string.
Syntax
Arguments
str— The String to be parsed.format— The format string. Optional.yyyy-MM-dd HH:mm:ssif not specified.timezone— Timezone. Optional.
Returned value(s)
Return a DateTime64 value parsed from the input string according to a Joda-style format string.
The precision of the returned value equal to the number of S placeholders in the format string (but at most 6).
parseDateTime64InJodaSyntaxOrZero
Same as for parseDateTime64InJodaSyntax except that it returns zero date when it encounters a date format that cannot be processed.
parseDateTime64InJodaSyntaxOrNull
Same as for parseDateTime64InJodaSyntax except that it returns NULL when it encounters a date format that cannot be processed.
parseDateTimeBestEffort
parseDateTime32BestEffort
Converts a date and time in the String representation to DateTime data type.
The function parses ISO 8601, RFC 1123 - 5.2.14 RFC-822 Date and Time Specification, ClickHouse's and some other date and time formats.
Syntax
Arguments
time_string— String containing a date and time to convert. String.time_zone— Time zone. The function parsestime_stringaccording to the time zone. String.
Supported non-standard formats
- A string containing 9..10 digit unix timestamp.
- A string with a date and a time component:
YYYYMMDDhhmmss,DD/MM/YYYY hh:mm:ss,DD-MM-YY hh:mm,YYYY-MM-DD hh:mm:ss, etc. - A string with a date, but no time component:
YYYY,YYYYMM,YYYY*MM,DD/MM/YYYY,DD-MM-YYetc. - A string with a day and time:
DD,DD hh,DD hh:mm. In this caseMMis substituted by01. - A string that includes the date and time along with time zone offset information:
YYYY-MM-DD hh:mm:ss ±h:mm, etc. For example,2020-12-12 17:36:00 -5:00. - A syslog timestamp:
Mmm dd hh:mm:ss. For example,Jun 9 14:20:32.
For all of the formats with separator the function parses months names expressed by their full name or by the first three letters of a month name. Examples: 24/DEC/18, 24-Dec-18, 01-September-2018.
If the year is not specified, it is considered to be equal to the current year. If the resulting DateTime happen to be in the future (even by a second after the current moment), then the current year is substituted by the previous year.
Returned value
time_stringconverted to the DateTime data type.
Examples
Query:
Result:
Query:
Result:
Query:
Result:
Query:
Result:
Query:
Result:
Query:
Result:
See also
parseDateTimeBestEffortUS
This function behaves like parseDateTimeBestEffort for ISO date formats, e.g. YYYY-MM-DD hh:mm:ss, and other date formats where the month and date components can be unambiguously extracted, e.g. YYYYMMDDhhmmss, YYYY-MM, DD hh, or YYYY-MM-DD hh:mm:ss ±h:mm. If the month and the date components cannot be unambiguously extracted, e.g. MM/DD/YYYY, MM-DD-YYYY, or MM-DD-YY, it prefers the US date format instead of DD/MM/YYYY, DD-MM-YYYY, or DD-MM-YY. As an exception from the latter, if the month is bigger than 12 and smaller or equal than 31, this function falls back to the behavior of parseDateTimeBestEffort, e.g. 15/08/2020 is parsed as 2020-08-15.
parseDateTimeBestEffortOrNull
parseDateTime32BestEffortOrNull
Same as for parseDateTimeBestEffort except that it returns NULL when it encounters a date format that cannot be processed.
parseDateTimeBestEffortOrZero
parseDateTime32BestEffortOrZero
Same as for parseDateTimeBestEffort except that it returns zero date or zero date time when it encounters a date format that cannot be processed.
parseDateTimeBestEffortUSOrNull
Same as parseDateTimeBestEffortUS function except that it returns NULL when it encounters a date format that cannot be processed.
parseDateTimeBestEffortUSOrZero
Same as parseDateTimeBestEffortUS function except that it returns zero date (1970-01-01) or zero date with time (1970-01-01 00:00:00) when it encounters a date format that cannot be processed.
parseDateTime64BestEffort
Same as parseDateTimeBestEffort function but also parse milliseconds and microseconds and returns DateTime data type.
Syntax
Arguments
time_string— String containing a date or date with time to convert. String.precision— Required precision.3— for milliseconds,6— for microseconds. Default —3. Optional. UInt8.time_zone— Timezone. The function parsestime_stringaccording to the timezone. Optional. String.
Returned value
time_stringconverted to the DateTime data type.
Examples
Query:
Result:
parseDateTime64BestEffortUS
Same as for parseDateTime64BestEffort, except that this function prefers US date format (MM/DD/YYYY etc.) in case of ambiguity.
parseDateTime64BestEffortOrNull
Same as for parseDateTime64BestEffort except that it returns NULL when it encounters a date format that cannot be processed.
parseDateTime64BestEffortOrZero
Same as for parseDateTime64BestEffort except that it returns zero date or zero date time when it encounters a date format that cannot be processed.
parseDateTime64BestEffortUSOrNull
Same as for parseDateTime64BestEffort, except that this function prefers US date format (MM/DD/YYYY etc.) in case of ambiguity and returns NULL when it encounters a date format that cannot be processed.
parseDateTime64BestEffortUSOrZero
Same as for parseDateTime64BestEffort, except that this function prefers US date format (MM/DD/YYYY etc.) in case of ambiguity and returns zero date or zero date time when it encounters a date format that cannot be processed.
toLowCardinality
Converts input parameter to the LowCardinality version of same data type.
To convert data from the LowCardinality data type use the CAST function. For example, CAST(x as String).
Syntax
Arguments
expr— Expression resulting in one of the supported data types.
Returned values
- Result of
expr. LowCardinality of the type ofexpr.
Example
Query:
Result:
toUnixTimestamp
Converts a String, Date, or DateTime to a Unix timestamp (seconds since 1970-01-01 00:00:00 UTC) as UInt32.
Syntax
Arguments
date: Value to convert.DateorDate32orDateTimeorDateTime64orString.timezone: Optional. Timezone to use for conversion. If not specified, the server's timezone is used.String
Returned value
Returns the Unix timestamp. UInt32
Examples
Usage example
toUnixTimestamp64Second
Converts a DateTime64 to a Int64 value with fixed second precision. The input value is scaled up or down appropriately depending on its precision.
The output value is a timestamp in UTC, not in the timezone of DateTime64.
Syntax
Arguments
value— DateTime64 value with any precision. DateTime64.
Returned value
valueconverted to theInt64data type. Int64.
Example
Query:
Result:
toUnixTimestamp64Milli
Converts a DateTime64 to a Int64 value with fixed millisecond precision. The input value is scaled up or down appropriately depending on its precision.
The output value is a timestamp in UTC, not in the timezone of DateTime64.
Syntax
Arguments
value— DateTime64 value with any precision. DateTime64.
Returned value
valueconverted to theInt64data type. Int64.
Example
Query:
Result:
toUnixTimestamp64Micro
Converts a DateTime64 to a Int64 value with fixed microsecond precision. The input value is scaled up or down appropriately depending on its precision.
The output value is a timestamp in UTC, not in the timezone of DateTime64.
Syntax
Arguments
value— DateTime64 value with any precision. DateTime64.
Returned value
valueconverted to theInt64data type. Int64.
Example
Query:
Result:
toUnixTimestamp64Nano
Converts a DateTime64 to a Int64 value with fixed nanosecond precision. The input value is scaled up or down appropriately depending on its precision.
The output value is a timestamp in UTC, not in the timezone of DateTime64.
Syntax
Arguments
value— DateTime64 value with any precision. DateTime64.
Returned value
valueconverted to theInt64data type. Int64.
Example
Query:
Result:
fromUnixTimestamp64Second
Converts an Int64 to a DateTime64 value with fixed second precision and optional timezone. The input value is scaled up or down appropriately depending on its precision.
Please note that input value is treated as a UTC timestamp, not timestamp at the given (or implicit) timezone.
Syntax
Arguments
Returned value
valueconverted to DateTime64 with precision0. DateTime64.
Example
Query:
Result:
fromUnixTimestamp64Milli
Converts an Int64 to a DateTime64 value with fixed millisecond precision and optional timezone. The input value is scaled up or down appropriately depending on its precision.
Please note that input value is treated as a UTC timestamp, not timestamp at the given (or implicit) timezone.
Syntax
Arguments
Returned value
valueconverted to DateTime64 with precision3. DateTime64.
Example
Query:
Result:
fromUnixTimestamp64Micro
Converts an Int64 to a DateTime64 value with fixed microsecond precision and optional timezone. The input value is scaled up or down appropriately depending on its precision.
Please note that input value is treated as a UTC timestamp, not timestamp at the given (or implicit) timezone.
Syntax
Arguments
Returned value
valueconverted to DateTime64 with precision6. DateTime64.
Example
Query:
Result:
fromUnixTimestamp64Nano
Converts an Int64 to a DateTime64 value with fixed nanosecond precision and optional timezone. The input value is scaled up or down appropriately depending on its precision.
Please note that input value is treated as a UTC timestamp, not timestamp at the given (or implicit) timezone.
Syntax
Arguments
Returned value
valueconverted to DateTime64 with precision9. DateTime64.
Example
Query:
Result:
formatRow
Converts arbitrary expressions into a string via given format.
Syntax
Arguments
format— Text format. For example, CSV, TabSeparated (TSV).x,y, ... — Expressions.
Returned value
- A formatted string. (for text formats it's usually terminated with the new line character).
Example
Query:
Result:
Note: If format contains suffix/prefix, it will be written in each row.
Example
Query:
Result:
Note: Only row-based formats are supported in this function.
formatRowNoNewline
Converts arbitrary expressions into a string via given format. Differs from formatRow in that this function trims the last \n if any.
Syntax
Arguments
format— Text format. For example, CSV, TabSeparated (TSV).x,y, ... — Expressions.
Returned value
- A formatted string.
Example
Query:
Result:
CAST
Introduced in: v1.1
Converts a value to a specified data type. Unlike the reinterpret function, CAST tries to generate the same value in the target type. If that is not possible, an exception is raised.
Syntax
Arguments
Returned value
Returns the converted value with the target data type. Any
Examples
Basic usage
Using AS syntax
Using :: syntax
accurateCast
Introduced in: v1.1
Converts a value to a specified data type. Unlike CAST, accurateCast performs stricter type checking and throws an exception if the conversion would result in a loss of data precision or if the conversion is not possible.
This function is safer than regular CAST as it prevents precision loss and invalid conversions.
Syntax
Arguments
Returned value
Returns the converted value with the target data type. Any
Examples
Successful conversion
String to number
accurateCastOrDefault
Introduced in: v21.1
Converts a value to a specified data type.
Like accurateCast, but returns a default value instead of throwing an exception if the conversion cannot be performed accurately.
If a default value is provided as the second argument, it must be of the target type. If no default value is provided, the default value of the target type is used.
Syntax
Arguments
x— A value to convert.AnyT— The target data type name.const Stringdefault_value— Optional. Default value to return if conversion fails.Any
Returned value
Returns the converted value with the target data type, or the default value if conversion is not possible. Any
Examples
Successful conversion
Failed conversion with explicit default
Failed conversion with implicit default
accurateCastOrNull
Introduced in: v1.1
Converts a value to a specified data type.
Like accurateCast, but returns NULL instead of throwing an exception if the conversion cannot be performed accurately.
This function combines the safety of accurateCast with graceful error handling.
Syntax
Arguments
Returned value
Returns the converted value with the target data type, or NULL if conversion is not possible. Any
Examples
Successful conversion
Failed conversion returns NULL
formatRow
Introduced in: v20.7
Converts arbitrary expressions into a string via given format.
If the format contains a suffix/prefix, it will be written in each row. Only row-based formats are supported in this function.
Syntax
Arguments
Returned value
A formatted string. (for text formats it's usually terminated with the new line character). String
Examples
Basic usage
With custom format
formatRowNoNewline
Introduced in: v20.7
Same as formatRow, but trims the newline character of each row.
Converts arbitrary expressions into a string via given format, but removes any trailing newline characters from the result.
Syntax
Arguments
Returned value
Returns a formatted string with newlines removed. String
Examples
Basic usage
fromUnixTimestamp64Micro
Introduced in: v20.5
Converts a Unix timestamp in microseconds to a DateTime64 value with microsecond precision.
The input value is treated as a Unix timestamp with microsecond precision (number of microseconds since 1970-01-01 00:00:00 UTC).
Syntax
Arguments
value— Unix timestamp in microseconds.Int64timezone— Optional. Timezone for the returned value.String
Returned value
Returns a DateTime64 value with microsecond precision. DateTime64(6)
Examples
Usage example
fromUnixTimestamp64Milli
Introduced in: v20.5
Converts a Unix timestamp in milliseconds to a DateTime64 value with millisecond precision.
The input value is treated as a Unix timestamp with millisecond precision (number of milliseconds since 1970-01-01 00:00:00 UTC).
Syntax
Arguments
value— Unix timestamp in milliseconds.Int64timezone— Optional. Timezone for the returned value.String
Returned value
A DateTime64 value with millisecond precision. DateTime64(3)
Examples
Usage example
fromUnixTimestamp64Nano
Introduced in: v20.5
Converts a Unix timestamp in nanoseconds to a DateTime64 value with nanosecond precision.
The input value is treated as a Unix timestamp with nanosecond precision (number of nanoseconds since 1970-01-01 00:00:00 UTC).
Please note that the input value is treated as a UTC timestamp, not the timezone of the input value.
Syntax
Arguments
value— Unix timestamp in nanoseconds.Int64timezone— Optional. Timezone for the returned value.String
Returned value
Returns a DateTime64 value with nanosecond precision. DateTime64(9)
Examples
Usage example
fromUnixTimestamp64Second
Introduced in: v24.12
Converts a Unix timestamp in seconds to a DateTime64 value with second precision.
The input value is treated as a Unix timestamp with second precision (number of seconds since 1970-01-01 00:00:00 UTC).
Syntax
Arguments
value— Unix timestamp in seconds.Int64timezone— Optional. Timezone for the returned value.String
Returned value
Returns a DateTime64 value with second precision. DateTime64(0)
Examples
Usage example
parseDateTime
Introduced in: v23.3
Parses a date and time string according to a MySQL date format string.
This function is the inverse of formatDateTime.
It parses a String argument using a format String. Returns a DateTime type.
Syntax
Aliases: TO_UNIXTIME
Arguments
time_string— String to be parsed into DateTime.Stringformat— Format string specifying how to parse time_string.Stringtimezone— Optional. Timezone.String
Returned value
Returns a DateTime parsed from the input string according to the MySQL style format string. DateTime
Examples
Usage example
parseDateTime32BestEffort
Introduced in: v20.9
Converts a string representation of a date and time to the DateTime data type.
The function parses ISO 8601, RFC 1123 - 5.2.14 RFC-822 Date and Time Specification, ClickHouse's and some other date and time formats.
Syntax
Arguments
time_string— String containing a date and time to convert.Stringtime_zone— Optional. Time zone according to whichtime_stringis parsedString
Returned value
Returns time_string as a DateTime. DateTime
Examples
Usage example
With timezone
Unix timestamp
parseDateTime32BestEffortOrNull
Introduced in: v20.9
Same as parseDateTime32BestEffort except that it returns NULL when it encounters a date format that cannot be processed.
Syntax
Arguments
time_string— String containing a date and time to convert.Stringtime_zone— Optional. Time zone according to whichtime_stringis parsed.String
Returned value
Returns a DateTime object parsed from the string, or NULL if the parsing fails. DateTime
Examples
Usage example
parseDateTime32BestEffortOrZero
Introduced in: v20.9
Same as parseDateTime32BestEffort except that it returns a zero date or a zero date time when it encounters a date format that cannot be processed.
Syntax
Arguments
time_string— String containing a date and time to convert.Stringtime_zone— Optional. Time zone according to whichtime_stringis parsed.String
Returned value
Returns a DateTime object parsed from the string, or zero date (1970-01-01 00:00:00) if the parsing fails. DateTime
Examples
Usage example
parseDateTime64BestEffort
Introduced in: v20.1
Same as parseDateTimeBestEffort function but also parse milliseconds and microseconds and returns DateTime64 data type.
Syntax
Arguments
time_string— String containing a date or date with time to convert.Stringprecision— Optional. Required precision.3for milliseconds,6for microseconds. Default:3.UInt8time_zone— Optional. Timezone. The function parsestime_stringaccording to the timezone.String
Returned value
Returns time_string converted to the DateTime64 data type. DateTime64
Examples
Usage example
parseDateTime64BestEffortOrNull
Introduced in: v20.1
Same as parseDateTime64BestEffort except that it returns NULL when it encounters a date format that cannot be processed.
Syntax
Arguments
time_string— String containing a date or date with time to convert.Stringprecision— Optional. Required precision.3for milliseconds,6for microseconds. Default:3.UInt8time_zone— Optional. Timezone. The function parsestime_stringaccording to the timezone.String
Returned value
Returns time_string converted to DateTime64, or NULL if the input cannot be parsed. DateTime64 or NULL
Examples
Usage example
parseDateTime64BestEffortOrZero
Introduced in: v20.1
Same as parseDateTime64BestEffort except that it returns zero date or zero date time when it encounters a date format that cannot be processed.
Syntax
Arguments
time_string— String containing a date or date with time to convert.Stringprecision— Optional. Required precision.3for milliseconds,6for microseconds. Default:3.UInt8time_zone— Optional. Timezone. The function parsestime_stringaccording to the timezone.String
Returned value
Returns time_string converted to DateTime64, or zero date/datetime (1970-01-01 00:00:00.000) if the input cannot be parsed. DateTime64
Examples
Usage example
parseDateTime64BestEffortUS
Introduced in: v22.8
Same as parseDateTime64BestEffort, except that this function prefers US date format (MM/DD/YYYY etc.) in case of ambiguity.
Syntax
Arguments
time_string— String containing a date or date with time to convert.Stringprecision— Optional. Required precision.3for milliseconds,6for microseconds. Default:3.UInt8time_zone— Optional. Timezone. The function parsestime_stringaccording to the timezone.String
Returned value
Returns time_string converted to DateTime64 using US date format preference for ambiguous cases. DateTime64
Examples
Usage example
parseDateTime64BestEffortUSOrNull
Introduced in: v22.8
Same as parseDateTime64BestEffort, except that this function prefers US date format (MM/DD/YYYY etc.) in case of ambiguity and returns NULL when it encounters a date format that cannot be processed.
Syntax
Arguments
time_string— String containing a date or date with time to convert.Stringprecision— Optional. Required precision.3for milliseconds,6for microseconds. Default:3.UInt8time_zone— Optional. Timezone. The function parsestime_stringaccording to the timezone.String
Returned value
Returns time_string converted to DateTime64 using US format preference, or NULL if the input cannot be parsed. DateTime64 or NULL
Examples
Usage example
parseDateTime64BestEffortUSOrZero
Introduced in: v22.8
Same as parseDateTime64BestEffort, except that this function prefers US date format (MM/DD/YYYY etc.) in case of ambiguity and returns zero date or zero date time when it encounters a date format that cannot be processed.
Syntax
Arguments
time_string— String containing a date or date with time to convert.Stringprecision— Optional. Required precision.3for milliseconds,6for microseconds. Default:3.UInt8time_zone— Optional. Timezone. The function parsestime_stringaccording to the timezone.String
Returned value
Returns time_string converted to DateTime64 using US format preference, or zero date/datetime (1970-01-01 00:00:00.000) if the input cannot be parsed. DateTime64
Examples
Usage example
parseDateTimeBestEffort
Introduced in: v1.1
Converts a date and time in the String representation to DateTime data type. The function parses ISO 8601, RFC 1123 - 5.2.14 RFC-822 Date and Time Specification, ClickHouse's and some other date and time formats.
Supported non-standard formats:
- A string containing 9..10 digit unix timestamp.
- A string with a date and a time component:
YYYYMMDDhhmmss,DD/MM/YYYY hh:mm:ss,DD-MM-YY hh:mm,YYYY-MM-DD hh:mm:ss, etc. - A string with a date, but no time component:
YYYY,YYYYMM,YYYY*MM,DD/MM/YYYY,DD-MM-YYetc. - A string with a day and time:
DD,DD hh,DD hh:mm. In this caseMMis substituted by01. - A string that includes the date and time along with time zone offset information:
YYYY-MM-DD hh:mm:ss ±h:mm, etc. - A syslog timestamp:
Mmm dd hh:mm:ss. For example,Jun 9 14:20:32.
For all of the formats with separator the function parses months names expressed by their full name or by the first three letters of a month name. If the year is not specified, it is considered to be equal to the current year.
Syntax
Arguments
time_string— String containing a date and time to convert.Stringtime_zone— Optional. Time zone according to whichtime_stringis parsed.String
Returned value
Returns time_string as a DateTime. DateTime
Examples
Usage example
With timezone
Unix timestamp
parseDateTimeBestEffortOrNull
Introduced in: v1.1
The same as parseDateTimeBestEffort except that it returns NULL when it encounters a date format that cannot be processed.
The function parses ISO 8601, RFC 1123 - 5.2.14 RFC-822 Date and Time Specification, ClickHouse's and some other date and time formats.
Supported non-standard formats:
- A string containing 9..10 digit unix timestamp.
- A string with a date and a time component:
YYYYMMDDhhmmss,DD/MM/YYYY hh:mm:ss,DD-MM-YY hh:mm,YYYY-MM-DD hh:mm:ss, etc. - A string with a date, but no time component:
YYYY,YYYYMM,YYYY*MM,DD/MM/YYYY,DD-MM-YYetc. - A string with a day and time:
DD,DD hh,DD hh:mm. In this caseMMis substituted by01. - A string that includes the date and time along with time zone offset information:
YYYY-MM-DD hh:mm:ss ±h:mm, etc. - A syslog timestamp:
Mmm dd hh:mm:ss. For example,Jun 9 14:20:32.
For all of the formats with separator the function parses months names expressed by their full name or by the first three letters of a month name. If the year is not specified, it is considered to be equal to the current year.
Syntax
Arguments
time_string— String containing a date and time to convert.Stringtime_zone— Optional. Time zone according to whichtime_stringis parsed.String
Returned value
Returns time_string as a DateTime, or NULL if the input cannot be parsed. DateTime or NULL
Examples
Usage example
parseDateTimeBestEffortOrZero
Introduced in: v1.1
Same as parseDateTimeBestEffort except that it returns a zero date or a zero date time when it encounters a date format that cannot be processed.
The function parses ISO 8601, RFC 1123 - 5.2.14 RFC-822 Date and Time Specification, ClickHouse's and some other date and time formats.
Supported non-standard formats:
- A string containing 9..10 digit unix timestamp.
- A string with a date and a time component:
YYYYMMDDhhmmss,DD/MM/YYYY hh:mm:ss,DD-MM-YY hh:mm,YYYY-MM-DD hh:mm:ss, etc. - A string with a date, but no time component:
YYYY,YYYYMM,YYYY*MM,DD/MM/YYYY,DD-MM-YYetc. - A string with a day and time:
DD,DD hh,DD hh:mm. In this caseMMis substituted by01. - A string that includes the date and time along with time zone offset information:
YYYY-MM-DD hh:mm:ss ±h:mm, etc. - A syslog timestamp:
Mmm dd hh:mm:ss. For example,Jun 9 14:20:32.
For all of the formats with separator the function parses months names expressed by their full name or by the first three letters of a month name. If the year is not specified, it is considered to be equal to the current year.
Syntax
Arguments
time_string— String containing a date and time to convert.Stringtime_zone— Optional. Time zone according to whichtime_stringis parsed.String
Returned value
Returns time_string as a DateTime, or zero date/datetime (1970-01-01 or 1970-01-01 00:00:00) if the input cannot be parsed. DateTime
Examples
Usage example
parseDateTimeBestEffortUS
Introduced in: v1.1
This function behaves like parseDateTimeBestEffort for ISO date formats, e.g. YYYY-MM-DD hh:mm:ss, and other date formats where the month and date components can be unambiguously extracted, e.g. YYYYMMDDhhmmss, YYYY-MM, DD hh, or YYYY-MM-DD hh:mm:ss ±h:mm.
If the month and the date components cannot be unambiguously extracted, e.g. MM/DD/YYYY, MM-DD-YYYY, or MM-DD-YY, it prefers the US date format instead of DD/MM/YYYY, DD-MM-YYYY, or DD-MM-YY.
As an exception to the previous statement, if the month is bigger than 12 and smaller or equal than 31, this function falls back to the behavior of parseDateTimeBestEffort, e.g. 15/08/2020 is parsed as 2020-08-15.
Syntax
Arguments
time_string— String containing a date and time to convert.Stringtime_zone— Optional. Time zone according to whichtime_stringis parsed.String
Returned value
Returns time_string as a DateTime using US date format preference for ambiguous cases. DateTime
Examples
Usage example
parseDateTimeBestEffortUSOrNull
Introduced in: v1.1
Same as parseDateTimeBestEffortUS function except that it returns NULL when it encounters a date format that cannot be processed.
This function behaves like parseDateTimeBestEffort for ISO date formats, but prefers the US date format for ambiguous cases, with NULL return on parsing errors.
Syntax
Arguments
time_string— String containing a date and time to convert.Stringtime_zone— Optional. Time zone according to whichtime_stringis parsed.String
Returned value
Returns time_string as a DateTime using US format preference, or NULL if the input cannot be parsed. DateTime or NULL
Examples
Usage example
parseDateTimeBestEffortUSOrZero
Introduced in: v1.1
Same as parseDateTimeBestEffortUS function except that it returns zero date (1970-01-01) or zero date with time (1970-01-01 00:00:00) when it encounters a date format that cannot be processed.
This function behaves like parseDateTimeBestEffort for ISO date formats, but prefers the US date format for ambiguous cases, with zero return on parsing errors.
Syntax
Arguments
time_string— String containing a date and time to convert.Stringtime_zone— Optional. Time zone according to whichtime_stringis parsed.String
Returned value
Returns time_string as a DateTime using US format preference, or zero date/datetime (1970-01-01 or 1970-01-01 00:00:00) if the input cannot be parsed. DateTime
Examples
Usage example
parseDateTimeOrNull
Introduced in: v23.3
Same as parseDateTime but returns NULL when it encounters an unparsable date format.
Syntax
Aliases: str_to_date
Arguments
time_string— String to be parsed into DateTime.Stringformat— Format string specifying how to parse time_string.Stringtimezone— Optional. Timezone.String
Returned value
Returns DateTime parsed from input string, or NULL if parsing fails. Nullable(DateTime)
Examples
Usage example
parseDateTimeOrZero
Introduced in: v23.3
Same as parseDateTime but returns zero date when it encounters an unparsable date format.
Syntax
Arguments
time_string— String to be parsed into DateTime.Stringformat— Format string specifying how to parse time_string.Stringtimezone— Optional. Timezone.String
Returned value
Returns DateTime parsed from input string, or zero DateTime if parsing fails. DateTime
Examples
Usage example
reinterpret
Introduced in: v1.1
Uses the same source in-memory bytes sequence for the provided value x and reinterprets it to the destination type.
Syntax
Arguments
x— Any type.Anytype— Destination type. If it is an array, then the array element type must be a fixed length type.String
Returned value
Destination type value. Any
Examples
Usage example
Array example
reinterpretAsDate
Introduced in: v1.1
Reinterprets the input value as a Date value (assuming little endian order) which is the number of days since the beginning of the Unix epoch 1970-01-01
Syntax
Arguments
x— Number of days since the beginning of the Unix Epoch.(U)Int*orFloat*orDateorDateTimeorUUIDorStringorFixedString
Returned value
Date. Date
Examples
Usage example
reinterpretAsDateTime
Introduced in: v1.1
Reinterprets the input value as a DateTime value (assuming little endian order) which is the number of days since the beginning of the Unix epoch 1970-01-01
Syntax
Arguments
x— Number of seconds since the beginning of the Unix Epoch.(U)Int*orFloat*orDateorDateTimeorUUIDorStringorFixedString
Returned value
Date and Time. DateTime
Examples
Usage example
reinterpretAsFixedString
Introduced in: v1.1
Reinterprets the input value as a fixed string (assuming little endian order). Null bytes at the end are ignored, for example, the function returns for UInt32 value 255 a string with a single character.
Syntax
Arguments
Returned value
Fixed string containing bytes representing x. FixedString
Examples
Usage example
reinterpretAsFloat32
Introduced in: v1.1
Reinterprets the input value as a value of type Float32.
Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is undefined.
Syntax
Arguments
x— Value to reinterpret as Float32.(U)Int*orFloat*orDateorDateTimeorUUIDorStringorFixedString
Returned value
Returns the reinterpreted value x. Float32
Examples
Usage example
reinterpretAsFloat64
Introduced in: v1.1
Reinterprets the input value as a value of type Float64.
Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is undefined.
Syntax
Arguments
x— Value to reinterpret as Float64.(U)Int*orFloat*orDateorDateTimeorUUIDorStringorFixedString
Returned value
Returns the reinterpreted value x. Float64
Examples
Usage example
reinterpretAsInt128
Introduced in: v1.1
Reinterprets the input value as a value of type Int128.
Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is undefined.
Syntax
Arguments
x— Value to reinterpret as Int128.(U)Int*orFloat*orDateorDateTimeorUUIDorStringorFixedString
Returned value
Returns the reinterpreted value x. Int128
Examples
Usage example
reinterpretAsInt16
Introduced in: v1.1
Reinterprets the input value as a value of type Int16.
Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is undefined.
Syntax
Arguments
x— Value to reinterpret as Int16.(U)Int*orFloat*orDateorDateTimeorUUIDorStringorFixedString
Returned value
Returns the reinterpreted value x. Int16
Examples
Usage example
reinterpretAsInt256
Introduced in: v1.1
Reinterprets the input value as a value of type Int256.
Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is undefined.
Syntax
Arguments
x— Value to reinterpret as Int256.(U)Int*orFloat*orDateorDateTimeorUUIDorStringorFixedString
Returned value
Returns the reinterpreted value x. Int256
Examples
Usage example
reinterpretAsInt32
Introduced in: v1.1
Reinterprets the input value as a value of type Int32.
Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is undefined.
Syntax
Arguments
x— Value to reinterpret as Int32.(U)Int*orFloat*orDateorDateTimeorUUIDorStringorFixedString
Returned value
Returns the reinterpreted value x. Int32
Examples
Usage example
reinterpretAsInt64
Introduced in: v1.1
Reinterprets the input value as a value of type Int64.
Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is undefined.
Syntax
Arguments
x— Value to reinterpret as Int64.(U)Int*orFloat*orDateorDateTimeorUUIDorStringorFixedString
Returned value
Returns the reinterpreted value x. Int64
Examples
Usage example
reinterpretAsInt8
Introduced in: v1.1
Reinterprets the input value as a value of type Int8.
Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is undefined.
Syntax
Arguments
x— Value to reinterpret as Int8.(U)Int*orFloat*orDateorDateTimeorUUIDorStringorFixedString
Returned value
Returns the reinterpreted value x. Int8
Examples
Usage example
reinterpretAsString
Introduced in: v1.1
Reinterprets the input value as a string (assuming little endian order). Null bytes at the end are ignored, for example, the function returns for UInt32 value 255 a string with a single character.
Syntax
Arguments
Returned value
String containing bytes representing x. String
Examples
Usage example
reinterpretAsUInt128
Introduced in: v1.1
Reinterprets the input value as a value of type UInt128.
Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is undefined.
Syntax
Arguments
x— Value to reinterpret as UInt128.(U)Int*orFloat*orDateorDateTimeorUUIDorStringorFixedString
Returned value
Returns the reinterpreted value x. UInt128
Examples
Usage example
reinterpretAsUInt16
Introduced in: v1.1
Reinterprets the input value as a value of type UInt16.
Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is undefined.
Syntax
Arguments
x— Value to reinterpret as UInt16.(U)Int*orFloat*orDateorDateTimeorUUIDorStringorFixedString
Returned value
Returns the reinterpreted value x. UInt16
Examples
Usage example
reinterpretAsUInt256
Introduced in: v1.1
Reinterprets the input value as a value of type UInt256.
Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is undefined.
Syntax
Arguments
x— Value to reinterpret as UInt256.(U)Int*orFloat*orDateorDateTimeorUUIDorStringorFixedString
Returned value
Returns the reinterpreted value x. UInt256
Examples
Usage example
reinterpretAsUInt32
Introduced in: v1.1
Reinterprets the input value as a value of type UInt32.
Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is undefined.
Syntax
Arguments
x— Value to reinterpret as UInt32.(U)Int*orFloat*orDateorDateTimeorUUIDorStringorFixedString
Returned value
Returns the reinterpreted value x. UInt32
Examples
Usage example
reinterpretAsUInt64
Introduced in: v1.1
Reinterprets the input value as a value of type UInt64.
Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is undefined.
Syntax
Arguments
x— Value to reinterpret as UInt64.Int*orUInt*orFloat*orDateorDateTimeorUUIDorStringorFixedString
Returned value
Returns the reinterpreted value of x. UInt64
Examples
Usage example
reinterpretAsUInt8
Introduced in: v1.1
Reinterprets the input value as a value of type UInt8.
Unlike CAST, the function does not attempt to preserve the original value - if the target type is not able to represent the input type, the output is undefined.
Syntax
Arguments
x— Value to reinterpret as UInt8.(U)Int*orFloat*orDateorDateTimeorUUIDorStringorFixedString
Returned value
Returns the reinterpreted value x. UInt8
Examples
Usage example
reinterpretAsUUID
Introduced in: v1.1
Accepts a 16 byte string and returns a UUID by interpreting each 8-byte half in little-endian byte order. If the string isn't long enough, the function works as if the string is padded with the necessary number of null bytes to the end. If the string is longer than 16 bytes, the extra bytes at the end are ignored.
Syntax
Arguments
fixed_string— Big-endian byte string.FixedString
Returned value
The UUID type value. UUID
Examples
String to UUID
toBFloat16
Introduced in: v1.1
Converts an input value to a value of type BFloat16. Throws an exception in case of an error.
See also:
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Expression
Returned value
Returns a 16-bit brain-float value. BFloat16
Examples
Usage example
toBFloat16OrNull
Introduced in: v1.1
Converts a String input value to a value of type BFloat16. If the string does not represent a floating point value, the function returns NULL.
Supported arguments:
- String representations of numeric values.
Unsupported arguments (return NULL):
- String representations of binary and hexadecimal values.
- Numeric values.
The function allows a silent loss of precision while converting from the string representation.
See also:
Syntax
Arguments
x— A String representation of a number.String
Returned value
Reurns a 16-bit brain-float value, otherwise NULL. BFloat16 or NULL
Examples
Usage example
toBFloat16OrZero
Introduced in: v1.1
Converts a String input value to a value of type BFloat16. If the string does not represent a floating point value, the function returns zero.
Supported arguments:
- String representations of numeric values.
Unsupported arguments (return 0):
- String representations of binary and hexadecimal values.
- Numeric values.
The function allows a silent loss of precision while converting from the string representation.
See also:
Syntax
Arguments
x— A String representation of a number.String
Returned value
Returns a 16-bit brain-float value, otherwise 0. BFloat16
Examples
Usage example
toBool
Introduced in: v22.2
Converts an input value to a value of type Bool.
Syntax
Arguments
expr— Expression returning a number or a string. For strings, accepts 'true' or 'false' (case-insensitive).(U)Int*orFloat*orStringorExpression
Returned value
Returns true or false based on evaluation of the argument. Bool
Examples
Usage example
toDate
Introduced in: v1.1
Converts an input value to type Date.
Supports conversion from String, FixedString, DateTime, or numeric types.
Syntax
Arguments
x— Input value to convert.StringorFixedStringorDateTimeor(U)Int*orFloat*
Returned value
Returns the converted input value. Date
Examples
String to Date conversion
DateTime to Date conversion
Integer to Date conversion
toDate32
Introduced in: v21.9
Converts the argument to the Date32 data type.
If the value is outside the range, toDate32 returns the border values supported by Date32.
If the argument is of type Date, it's bounds are taken into account.
Syntax
Arguments
Returned value
Returns a calendar date. Date32
Examples
Within range
Outside range
toDate32OrDefault
Introduced in: v21.11
Converts the argument to the Date32 data type. If the value is outside the range, toDate32OrDefault returns the lower border value supported by Date32. If the argument has Date type, it's borders are taken into account. Returns default value if an invalid argument is received.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Stringor(U)Int*orFloat*default— Optional. The default value to return if parsing is unsuccessful.Date32
Returned value
Value of type Date32 if successful, otherwise returns the default value if passed or 1900-01-01 if not. Date32
Examples
Successful conversion
Failed conversion
toDate32OrNull
Introduced in: v21.9
Converts an input value to a value of type Date32 but returns NULL if an invalid argument is received.
The same as toDate32 but returns NULL if an invalid argument is received.
Syntax
Arguments
x— A string representation of a date.String
Returned value
Returns a Date32 value if successful, otherwise NULL. Date32 or NULL
Examples
Usage example
toDate32OrZero
Introduced in: v21.9
Converts an input value to a value of type Date32 but returns the lower boundary of Date32 if an invalid argument is received. The same as toDate32 but returns lower boundary of Date32 if an invalid argument is received.
See also:
Syntax
Arguments
x— A string representation of a date.String
Returned value
Returns a Date32 value if successful, otherwise the lower boundary of Date32 (1900-01-01). Date32
Examples
Usage example
toDateOrDefault
Introduced in: v21.11
Like toDate but if unsuccessful, returns a default value which is either the second argument (if specified), or otherwise the lower boundary of Date.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Stringor(U)Int*orFloat*default— Optional. The default value to return if parsing is unsuccessful.Date
Returned value
Value of type Date if successful, otherwise returns the default value if passed or 1970-01-01 if not. Date
Examples
Successful conversion
Failed conversion
toDateOrNull
Introduced in: v1.1
Converts an input value to a value of type Date but returns NULL if an invalid argument is received.
The same as toDate but returns NULL if an invalid argument is received.
Syntax
Arguments
x— A string representation of a date.String
Returned value
Returns a Date value if successful, otherwise NULL. Date or NULL
Examples
Usage example
toDateOrZero
Introduced in: v1.1
Converts an input value to a value of type Date but returns the lower boundary of Date if an invalid argument is received.
The same as toDate but returns lower boundary of Date if an invalid argument is received.
See also:
Syntax
Arguments
x— A string representation of a date.String
Returned value
Returns a Date value if successful, otherwise the lower boundary of Date (1970-01-01). Date
Examples
Usage example
toDateTime
Introduced in: v1.1
Converts an input value to type DateTime.
If expr is a number, it is interpreted as the number of seconds since the beginning of the Unix Epoch (as Unix timestamp).
If expr is a String, it may be interpreted as a Unix timestamp or as a string representation of date / date with time.
Thus, parsing of short numbers' string representations (up to 4 digits) is explicitly disabled due to ambiguity, e.g. a string '1999' may be both a year (an incomplete string representation of Date / DateTime) or a unix timestamp. Longer numeric strings are allowed.
Syntax
Arguments
Returned value
Returns a date time. DateTime
Examples
Usage example
toDateTime32
Introduced in: v20.9
Converts an input value to type DateTime.
Supports conversion from String, FixedString, Date, Date32, DateTime, or numeric types ((U)Int*, Float*, Decimal).
DateTime32 provides extended range compared to DateTime, supporting dates from 1900-01-01 to 2299-12-31.
Syntax
Arguments
x— Input value to convert.StringorFixedStringorUInt*orFloat*orDateorDateTimeorDateTime64timezone— Optional. Timezone for the returnedDateTimevalue.String
Returned value
Returns the converted input value. DateTime
Examples
The value is within the range
As a decimal with precision
With a timezone
toDateTime64
Introduced in: v20.1
Converts an input value to a value of type DateTime64.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Expressionscale— Tick size (precision): 10^(-scale) seconds.UInt8timezone— Optional. Time zone for the specifiedDateTime64object.String
Returned value
Returns a calendar date and time of day, with sub-second precision. DateTime64
Examples
The value is within the range
As decimal with precision
With timezone
toDateTime64OrDefault
Introduced in: v21.11
Like toDateTime64, this function converts an input value to a value of type DateTime64, but returns either the default value of DateTime64 or the provided default if an invalid argument is received.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Stringor(U)Int*orFloat*scale— Tick size (precision): 10^-precision seconds.UInt8timezone— Optional. Time zone.Stringdefault— Optional. The default value to return if parsing is unsuccessful.DateTime64
Returned value
Value of type DateTime64 if successful, otherwise returns the default value if passed or 1970-01-01 00:00:00.000 if not. DateTime64
Examples
Successful conversion
Failed conversion
toDateTime64OrNull
Introduced in: v20.1
Converts an input value to a value of type DateTime64 but returns NULL if an invalid argument is received.
The same as toDateTime64 but returns NULL if an invalid argument is received.
Syntax
Arguments
x— A string representation of a date with time and subsecond precision.String
Returned value
Returns a DateTime64 value if successful, otherwise NULL. DateTime64 or NULL
Examples
Usage example
toDateTime64OrZero
Introduced in: v20.1
Converts an input value to a value of type DateTime64 but returns the lower boundary of DateTime64 if an invalid argument is received. The same as toDateTime64 but returns lower boundary of DateTime64 if an invalid argument is received.
See also:
Syntax
Arguments
x— A string representation of a date with time and subsecond precision.String
Returned value
Returns a DateTime64 value if successful, otherwise the lower boundary of DateTime64 (1970-01-01 00:00:00.000). DateTime64
Examples
Usage example
toDateTimeOrDefault
Introduced in: v21.11
Like toDateTime but if unsuccessful, returns a default value which is either the third argument (if specified), or otherwise the lower boundary of DateTime.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Stringor(U)Int*orFloat*timezone— Optional. Time zone.Stringdefault— Optional. The default value to return if parsing is unsuccessful.DateTime
Returned value
Value of type DateTime if successful, otherwise returns the default value if passed or 1970-01-01 00:00:00 if not. DateTime
Examples
Successful conversion
Failed conversion
toDateTimeOrNull
Introduced in: v1.1
Converts an input value to a value of type DateTime but returns NULL if an invalid argument is received.
The same as toDateTime but returns NULL if an invalid argument is received.
Syntax
Arguments
x— A string representation of a date with time.String
Returned value
Returns a DateTime value if successful, otherwise NULL. DateTime or NULL
Examples
Usage example
toDateTimeOrZero
Introduced in: v1.1
Converts an input value to a value of type DateTime but returns the lower boundary of DateTime if an invalid argument is received. The same as toDateTime but returns lower boundary of DateTime if an invalid argument is received.
Syntax
Arguments
x— A string representation of a date with time.String
Returned value
Returns a DateTime value if successful, otherwise the lower boundary of DateTime (1970-01-01 00:00:00). DateTime
Examples
Usage example
toDecimal128
Introduced in: v18.12
Converts an input value to a value of type Decimal(38, S) with scale of S.
Throws an exception in case of an error.
Supported arguments:
- Values or string representations of type (U)Int*.
- Values or string representations of type Float*.
Unsupported arguments:
- Values or string representations of Float* values
NaNandInf(case-insensitive). - String representations of binary and hexadecimal values, e.g.
SELECT toDecimal128('0xc0fe', 1);.
An overflow can occur if the value of expr exceeds the bounds of Decimal128:(-1*10^(38 - S), 1*10^(38 - S)).
Excessive digits in a fraction are discarded (not rounded).
Excessive digits in the integer part will lead to an exception.
Conversions drop extra digits and could operate in an unexpected way when working with Float32/Float64 inputs as the operations are performed using floating point instructions.
For example: toDecimal128(1.15, 2) is equal to 1.14 because 1.15 * 100 in floating point is 114.99.
You can use a String input so the operations use the underlying integer type: toDecimal128('1.15', 2) = 1.15
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.ExpressionS— Scale parameter between 0 and 38, specifying how many digits the fractional part of a number can have.UInt8
Returned value
Returns a value of type Decimal(38, S) Decimal128(S)
Examples
Usage example
toDecimal128OrDefault
Introduced in: v21.11
Like toDecimal128, this function converts an input value to a value of type Decimal(38, S) but returns the default value in case of an error.
Syntax
Arguments
expr— A String representation of a number.StringS— Scale parameter between 0 and 38, specifying how many digits the fractional part of a number can have.UInt8default— Optional. The default value to return if parsing to type Decimal128(S) is unsuccessful.Decimal128(S)
Returned value
Value of type Decimal(38, S) if successful, otherwise returns the default value if passed or 0 if not. Decimal128(S)
Examples
Successful conversion
Failed conversion
toDecimal128OrNull
Introduced in: v20.1
Converts an input value to a value of type Decimal(38, S) but returns NULL in case of an error.
Like toDecimal128 but returns NULL instead of throwing an exception on conversion errors.
Supported arguments:
- Values or string representations of type (U)Int*.
- Values or string representations of type Float*.
Unsupported arguments (return NULL):
- Values or string representations of Float* values
NaNandInf(case-insensitive). - String representations of binary and hexadecimal values.
- Values that exceed the bounds of
Decimal128:(-1*10^(38 - S), 1*10^(38 - S)).
See also:
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.ExpressionS— Scale parameter between 0 and 38, specifying how many digits the fractional part of a number can have.UInt8
Returned value
Returns a Decimal(38, S) value if successful, otherwise NULL. Decimal128(S) or NULL
Examples
Usage example
toDecimal128OrZero
Introduced in: v20.1
Converts an input value to a value of type Decimal(38, S) but returns 0 in case of an error.
Like toDecimal128 but returns 0 instead of throwing an exception on conversion errors.
Supported arguments:
- Values or string representations of type (U)Int*.
- Values or string representations of type Float*.
Unsupported arguments (return 0):
- Values or string representations of Float* values
NaNandInf(case-insensitive). - String representations of binary and hexadecimal values.
If the input value exceeds the bounds of Decimal128:(-1*10^(38 - S), 1*10^(38 - S)), the function returns 0.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.ExpressionS— Scale parameter between 0 and 38, specifying how many digits the fractional part of a number can have.UInt8
Returned value
Returns a Decimal(38, S) value if successful, otherwise 0. Decimal128(S)
Examples
Basic usage
toDecimal256
Introduced in: v20.8
Converts an input value to a value of type Decimal(76, S) with scale of S. Throws an exception in case of an error.
Supported arguments:
- Values or string representations of type (U)Int*.
- Values or string representations of type Float*.
Unsupported arguments:
- Values or string representations of Float* values
NaNandInf(case-insensitive). - String representations of binary and hexadecimal values, e.g.
SELECT toDecimal256('0xc0fe', 1);.
An overflow can occur if the value of expr exceeds the bounds of Decimal256:(-1*10^(76 - S), 1*10^(76 - S)).
Excessive digits in a fraction are discarded (not rounded).
Excessive digits in the integer part will lead to an exception.
Conversions drop extra digits and could operate in an unexpected way when working with Float32/Float64 inputs as the operations are performed using floating point instructions.
For example: toDecimal256(1.15, 2) is equal to 1.14 because 1.15 * 100 in floating point is 114.99.
You can use a String input so the operations use the underlying integer type: toDecimal256('1.15', 2) = 1.15
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.ExpressionS— Scale parameter between 0 and 76, specifying how many digits the fractional part of a number can have.UInt8
Returned value
Returns a value of type Decimal(76, S). Decimal256(S)
Examples
Usage example
toDecimal256OrDefault
Introduced in: v21.11
Like toDecimal256, this function converts an input value to a value of type Decimal(76, S) but returns the default value in case of an error.
Syntax
Arguments
expr— A String representation of a number.StringS— Scale parameter between 0 and 76, specifying how many digits the fractional part of a number can have.UInt8default— Optional. The default value to return if parsing to type Decimal256(S) is unsuccessful.Decimal256(S)
Returned value
Value of type Decimal(76, S) if successful, otherwise returns the default value if passed or 0 if not. Decimal256(S)
Examples
Successful conversion
Failed conversion
toDecimal256OrNull
Introduced in: v20.8
Converts an input value to a value of type Decimal(76, S) but returns NULL in case of an error.
Like toDecimal256 but returns NULL instead of throwing an exception on conversion errors.
Supported arguments:
- Values or string representations of type (U)Int*.
- Values or string representations of type Float*.
Unsupported arguments (return NULL):
- Values or string representations of Float* values
NaNandInf(case-insensitive). - String representations of binary and hexadecimal values.
- Values that exceed the bounds of
Decimal256:(-1 * 10^(76 - S), 1 * 10^(76 - S)).
See also:
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.ExpressionS— Scale parameter between 0 and 76, specifying how many digits the fractional part of a number can have.UInt8
Returned value
Returns a Decimal(76, S) value if successful, otherwise NULL. Decimal256(S) or NULL
Examples
Usage example
toDecimal256OrZero
Introduced in: v20.8
Converts an input value to a value of type Decimal(76, S) but returns 0 in case of an error.
Like toDecimal256 but returns 0 instead of throwing an exception on conversion errors.
Supported arguments:
- Values or string representations of type (U)Int*.
- Values or string representations of type Float*.
Unsupported arguments (return 0):
- Values or string representations of Float* values
NaNandInf(case-insensitive). - String representations of binary and hexadecimal values.
If the input value exceeds the bounds of Decimal256:(-1*10^(76 - S), 1*10^(76 - S)), the function returns 0.
See also:
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.ExpressionS— Scale parameter between 0 and 76, specifying how many digits the fractional part of a number can have.UInt8
Returned value
Returns a Decimal(76, S) value if successful, otherwise 0. Decimal256(S)
Examples
Usage example
toDecimal32
Introduced in: v18.12
Converts an input value to a value of type Decimal(9, S) with scale of S. Throws an exception in case of an error.
Supported arguments:
- Values or string representations of type (U)Int*.
- Values or string representations of type Float*.
Unsupported arguments:
- Values or string representations of Float* values
NaNandInf(case-insensitive). - String representations of binary and hexadecimal values, e.g.
SELECT toDecimal32('0xc0fe', 1);.
An overflow can occur if the value of expr exceeds the bounds of Decimal32:(-1*10^(9 - S), 1*10^(9 - S)).
Excessive digits in a fraction are discarded (not rounded).
Excessive digits in the integer part will lead to an exception.
Conversions drop extra digits and could operate in an unexpected way when working with Float32/Float64 inputs as the operations are performed using floating point instructions.
For example: toDecimal32(1.15, 2) is equal to 1.14 because 1.15 * 100 in floating point is 114.99.
You can use a String input so the operations use the underlying integer type: toDecimal32('1.15', 2) = 1.15
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.ExpressionS— Scale parameter between 0 and 9, specifying how many digits the fractional part of a number can have.UInt8
Returned value
Returns a value of type Decimal(9, S) Decimal32(S)
Examples
Usage example
toDecimal32OrDefault
Introduced in: v21.11
Like toDecimal32, this function converts an input value to a value of type Decimal(9, S) but returns the default value in case of an error.
Syntax
Arguments
expr— A String representation of a number.StringS— Scale parameter between 0 and 9, specifying how many digits the fractional part of a number can have.UInt8default— Optional. The default value to return if parsing to type Decimal32(S) is unsuccessful.Decimal32(S)
Returned value
Value of type Decimal(9, S) if successful, otherwise returns the default value if passed or 0 if not. Decimal32(S)
Examples
Successful conversion
Failed conversion
toDecimal32OrNull
Introduced in: v20.1
Converts an input value to a value of type Decimal(9, S) but returns NULL in case of an error.
Like toDecimal32 but returns NULL instead of throwing an exception on conversion errors.
Supported arguments:
- Values or string representations of type (U)Int*.
- Values or string representations of type Float*.
Unsupported arguments (return NULL):
- Values or string representations of Float* values
NaNandInf(case-insensitive). - String representations of binary and hexadecimal values.
- Values that exceed the bounds of
Decimal32:(-1*10^(9 - S), 1*10^(9 - S)).
See also:
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.ExpressionS— Scale parameter between 0 and 9, specifying how many digits the fractional part of a number can have.UInt8
Returned value
Returns a Decimal(9, S) value if successful, otherwise NULL. Decimal32(S) or NULL
Examples
Usage example
toDecimal32OrZero
Introduced in: v20.1
Converts an input value to a value of type Decimal(9, S) but returns 0 in case of an error.
Like toDecimal32 but returns 0 instead of throwing an exception on conversion errors.
Supported arguments:
- Values or string representations of type (U)Int*.
- Values or string representations of type Float*.
Unsupported arguments (return 0):
- Values or string representations of Float* values
NaNandInf(case-insensitive). - String representations of binary and hexadecimal values.
If the input value exceeds the bounds of Decimal32:(-1*10^(9 - S), 1*10^(9 - S)), the function returns 0.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.ExpressionS— Scale parameter between 0 and 9, specifying how many digits the fractional part of a number can have.UInt8
Returned value
Returns a Decimal(9, S) value if successful, otherwise 0. Decimal32(S)
Examples
Usage example
toDecimal64
Introduced in: v18.12
Converts an input value to a value of type Decimal(18, S) with scale of S.
Throws an exception in case of an error.
Supported arguments:
- Values or string representations of type (U)Int*.
- Values or string representations of type Float*.
Unsupported arguments:
- Values or string representations of Float* values
NaNandInf(case-insensitive). - String representations of binary and hexadecimal values, e.g.
SELECT toDecimal64('0xc0fe', 1);.
An overflow can occur if the value of expr exceeds the bounds of Decimal64:(-1*10^(18 - S), 1*10^(18 - S)).
Excessive digits in a fraction are discarded (not rounded).
Excessive digits in the integer part will lead to an exception.
Conversions drop extra digits and could operate in an unexpected way when working with Float32/Float64 inputs as the operations are performed using floating point instructions.
For example: toDecimal64(1.15, 2) is equal to 1.14 because 1.15 * 100 in floating point is 114.99.
You can use a String input so the operations use the underlying integer type: toDecimal64('1.15', 2) = 1.15
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.ExpressionS— Scale parameter between 0 and 18, specifying how many digits the fractional part of a number can have.UInt8
Returned value
Returns a decimal value. Decimal(18, S)
Examples
Usage example
toDecimal64OrDefault
Introduced in: v21.11
Like toDecimal64, this function converts an input value to a value of type Decimal(18, S) but returns the default value in case of an error.
Syntax
Arguments
expr— A String representation of a number.StringS— Scale parameter between 0 and 18, specifying how many digits the fractional part of a number can have.UInt8default— Optional. The default value to return if parsing to type Decimal64(S) is unsuccessful.Decimal64(S)
Returned value
Value of type Decimal(18, S) if successful, otherwise returns the default value if passed or 0 if not. Decimal64(S)
Examples
Successful conversion
Failed conversion
toDecimal64OrNull
Introduced in: v20.1
Converts an input value to a value of type Decimal(18, S) but returns NULL in case of an error.
Like toDecimal64 but returns NULL instead of throwing an exception on conversion errors.
Supported arguments:
- Values or string representations of type (U)Int*.
- Values or string representations of type Float*.
Unsupported arguments (return NULL):
- Values or string representations of Float* values
NaNandInf(case-insensitive). - String representations of binary and hexadecimal values.
- Values that exceed the bounds of
Decimal64:(-1*10^(18 - S), 1*10^(18 - S)).
See also:
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.ExpressionS— Scale parameter between 0 and 18, specifying how many digits the fractional part of a number can have.UInt8
Returned value
Returns a Decimal(18, S) value if successful, otherwise NULL. Decimal64(S) or NULL
Examples
Usage example
toDecimal64OrZero
Introduced in: v20.1
Converts an input value to a value of type Decimal(18, S) but returns 0 in case of an error.
Like toDecimal64 but returns 0 instead of throwing an exception on conversion errors.
Supported arguments:
- Values or string representations of type (U)Int*.
- Values or string representations of type Float*.
Unsupported arguments (return 0):
- Values or string representations of Float* values
NaNandInf(case-insensitive). - String representations of binary and hexadecimal values.
If the input value exceeds the bounds of Decimal64:(-1*10^(18 - S), 1*10^(18 - S)), the function returns 0.
See also:
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.ExpressionS— Scale parameter between 0 and 18, specifying how many digits the fractional part of a number can have.UInt8
Returned value
Returns a Decimal(18, S) value if successful, otherwise 0. Decimal64(S)
Examples
Usage example
toDecimalString
Introduced in: v
Returns string representation of a number. First argument is the number of any numeric type, second argument is the desired number of digits in fractional part. Returns String.
Syntax
Arguments
- None.
Returned value
Examples
toDecimalString
toFixedString
Introduced in: v1.1
Converts a String argument to a FixedString(N) type (a string of fixed length N).
If the string has fewer bytes than N, it is padded with null bytes to the right. If the string has more bytes than N, an exception is thrown.
Syntax
Arguments
s— String to convert.StringN— Length of the resulting FixedString.const UInt*
Returned value
Returns a FixedString of length N. FixedString(N)
Examples
Usage example
toFloat32
Introduced in: v1.1
Converts an input value to a value of type Float32. Throws an exception in case of an error.
Supported arguments:
- Values of type (U)Int*.
- String representations of (U)Int8/16/32/128/256.
- Values of type Float*, including
NaNandInf. - String representations of Float*, including
NaNandInf(case-insensitive).
Unsupported arguments:
- String representations of binary and hexadecimal values, e.g.
SELECT toFloat32('0xc0fe');.
See also:
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Expression
Returned value
Returns a 32-bit floating point value. Float32
Examples
Usage example
toFloat32OrDefault
Introduced in: v21.11
Like toFloat32, this function converts an input value to a value of type Float32 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Stringor(U)Int*orFloat*default— Optional. The default value to return if parsing is unsuccessful.Float32
Returned value
Returns a value of type Float32 if successful, otherwise returns the default value if passed or 0 if not. Float32
Examples
Successful conversion
Failed conversion
toFloat32OrNull
Introduced in: v1.1
Converts an input value to a value of type Float32 but returns NULL in case of an error.
Like toFloat32 but returns NULL instead of throwing an exception on conversion errors.
Supported arguments:
- Values of type (U)Int*.
- String representations of (U)Int8/16/32/128/256.
- Values of type Float*, including
NaNandInf. - String representations of Float*, including
NaNandInf(case-insensitive).
Unsupported arguments (return NULL):
- String representations of binary and hexadecimal values, e.g.
SELECT toFloat32OrNull('0xc0fe');. - Invalid string formats.
See also:
Syntax
Arguments
x— A string representation of a number.String
Returned value
Returns a 32-bit Float value if successful, otherwise NULL. Float32 or NULL
Examples
Usage example
toFloat32OrZero
Introduced in: v1.1
Converts an input value to a value of type Float32 but returns 0 in case of an error.
Like toFloat32 but returns 0 instead of throwing an exception on conversion errors.
See also:
Syntax
Arguments
x— A string representation of a number.String
Returned value
Returns a 32-bit Float value if successful, otherwise 0. Float32
Examples
Usage example
toFloat64
Introduced in: v1.1
Converts an input value to a value of type Float64.
Throws an exception in case of an error.
Supported arguments:
- Values of type (U)Int*.
- String representations of (U)Int8/16/32/128/256.
- Values of type Float*, including
NaNandInf. - String representations of type Float*, including
NaNandInf(case-insensitive).
Unsupported arguments:
- String representations of binary and hexadecimal values, e.g.
SELECT toFloat64('0xc0fe');.
See also:
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Expression
Returned value
Returns a 64-bit floating point value. Float64
Examples
Usage example
toFloat64OrDefault
Introduced in: v21.11
Like toFloat64, this function converts an input value to a value of type Float64 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Stringor(U)Int*orFloat*default— Optional. The default value to return if parsing is unsuccessful.Float64
Returned value
Returns a value of type Float64 if successful, otherwise returns the default value if passed or 0 if not. Float64
Examples
Successful conversion
Failed conversion
toFloat64OrNull
Introduced in: v1.1
Converts an input value to a value of type Float64 but returns NULL in case of an error.
Like toFloat64 but returns NULL instead of throwing an exception on conversion errors.
Supported arguments:
- Values of type (U)Int*.
- String representations of (U)Int8/16/32/128/256.
- Values of type Float*, including
NaNandInf. - String representations of type Float*, including
NaNandInf(case-insensitive).
Unsupported arguments (return NULL):
- String representations of binary and hexadecimal values, e.g.
SELECT toFloat64OrNull('0xc0fe');. - Invalid string formats.
See also:
Syntax
Arguments
x— A string representation of a number.String
Returned value
Returns a 64-bit Float value if successful, otherwise NULL. Float64 or NULL
Examples
Usage example
toFloat64OrZero
Introduced in: v1.1
Converts an input value to a value of type Float64 but returns 0 in case of an error.
Like toFloat64 but returns 0 instead of throwing an exception on conversion errors.
See also:
Syntax
Arguments
x— A string representation of a number.String
Returned value
Returns a 64-bit Float value if successful, otherwise 0. Float64
Examples
Usage example
toInt128
Introduced in: v1.1
Converts an input value to a value of type Int128. Throws an exception in case of an error. The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Supported arguments:
- Values or string representations of type (U)Int*.
- Values of type Float*.
Unsupported arguments:
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt128('0xc0fe');.
If the input value cannot be represented within the bounds of Int128, the result over or under flows. This is not considered an error.
See also:
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Expression
Returned value
Returns a 128-bit integer value. Int128
Examples
Usage example
toInt128OrDefault
Introduced in: v21.11
Like toInt128, this function converts an input value to a value of type Int128 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Stringor(U)Int*orFloat*default— Optional. The default value to return if parsing is unsuccessful.Int128
Returned value
Returns a value of type Int128 if successful, otherwise returns the default value if passed, or 0 if not. Int128
Examples
Successful conversion
Failed conversion
toInt128OrNull
Introduced in: v20.8
Like toInt128, this function converts an input value to a value of type Int128 but returns NULL in case of an error.
Supported arguments:
- String representations of (U)Int*.
Unsupported arguments (return NULL):
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt128OrNull('0xc0fe');.
If the input value cannot be represented within the bounds of Int128, overflow or underflow of the result occurs. This is not considered an error.
See also:
Syntax
Arguments
x— A String representation of a number.String
Returned value
Returns a value of type Int128, otherwise NULL if the conversion is unsuccessful. Int128 or NULL
Examples
Usage example
toInt128OrZero
Introduced in: v20.8
Converts an input value to type Int128 but returns 0 in case of an error.
Like toInt128 but returns 0 instead of throwing an exception.
See also:
Syntax
Arguments
x— Input value to convert.StringorFixedStringorFloat*orDecimalor(U)Int*orDateorDateTime
Returned value
Returns the converted input value, otherwise 0 if conversion fails. Int128
Examples
Usage example
Failed conversion returns zero
toInt16
Introduced in: v1.1
Converts an input value to a value of type Int16.
Throws an exception in case of an error.
Supported arguments:
- Values or string representations of type (U)Int*.
- Values of type Float*.
Unsupported arguments:
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt16('0xc0fe');.
If the input value cannot be represented within the bounds of Int16, overflow or underflow of the result occurs.
This is not considered an error.
For example: SELECT toInt16(32768) == -32768;.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
See also:
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Expression
Returned value
Returns a 16-bit integer value. Int16
Examples
Usage example
toInt16OrDefault
Introduced in: v21.11
Like toInt16, this function converts an input value to a value of type Int16 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Stringor(U)Int*orFloat*default— Optional. The default value to return if parsing is unsuccessful.Int16
Returned value
Returns a value of type Int16 if successful, otherwise returns the default value if passed, or 0 if not. Int16
Examples
Successful conversion
Failed conversion
toInt16OrNull
Introduced in: v1.1
Like toInt16, this function converts an input value to a value of type Int16 but returns NULL in case of an error.
Supported arguments:
- String representations of (U)Int*.
Unsupported arguments (return NULL):
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt16OrNull('0xc0fe');.
If the input value cannot be represented within the bounds of Int16, overflow or underflow of the result occurs. This is not considered an error.
See also:
Syntax
Arguments
x— A String representation of a number.String
Returned value
Returns a value of type Int16, otherwise NULL if the conversion is unsuccessful. Int16 or NULL
Examples
Usage example
toInt16OrZero
Introduced in: v1.1
Like toInt16, this function converts an input value to a value of type Int16 but returns 0 in case of an error.
Supported arguments:
- String representations of (U)Int*.
Unsupported arguments (return 0):
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt16OrZero('0xc0fe');.
If the input value cannot be represented within the bounds of Int16, overflow or underflow of the result occurs. This is not considered an error.
See also:
Syntax
Arguments
x— A String representation of a number.String
Returned value
Returns a value of type Int16, otherwise 0 if the conversion is unsuccessful. Int16
Examples
Usage example
toInt256
Introduced in: v1.1
Converts an input value to a value of type Int256. Throws an exception in case of an error. The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Supported arguments:
- Values or string representations of type (U)Int*.
- Values of type Float*.
Unsupported arguments:
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt256('0xc0fe');.
If the input value cannot be represented within the bounds of Int256, the result over or under flows. This is not considered an error.
See also:
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Expression
Returned value
Returns a 256-bit integer value. Int256
Examples
Usage example
toInt256OrDefault
Introduced in: v21.11
Like toInt256, this function converts an input value to a value of type Int256 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Stringor(U)Int*orFloat*default— Optional. The default value to return if parsing is unsuccessful.Int256
Returned value
Returns a value of type Int256 if successful, otherwise returns the default value if passed, or 0 if not. Int256
Examples
Successful conversion
Failed conversion
toInt256OrNull
Introduced in: v20.8
Like toInt256, this function converts an input value to a value of type Int256 but returns NULL in case of an error.
Supported arguments:
- String representations of (U)Int*.
Unsupported arguments (return NULL):
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt256OrNull('0xc0fe');.
If the input value cannot be represented within the bounds of Int256, overflow or underflow of the result occurs. This is not considered an error.
See also:
Syntax
Arguments
x— A String representation of a number.String
Returned value
Returns a value of type Int256, otherwise NULL if the conversion is unsuccessful. Int256 or NULL
Examples
Usage example
toInt256OrZero
Introduced in: v20.8
Converts an input value to type Int256 but returns 0 in case of an error.
Like toInt256 but returns 0 instead of throwing an exception.
See also:
Syntax
Arguments
x— Input value to convert.StringorFixedStringorFloat*orDecimalor(U)Int*orDateorDateTime
Returned value
Returns the converted input value, otherwise 0 if conversion fails. Int256
Examples
Usage example
Failed conversion returns zero
toInt32
Introduced in: v1.1
Converts an input value to a value of type Int32.
Throws an exception in case of an error.
Supported arguments:
- Values or string representations of type (U)Int*.
- Values of type Float*.
Unsupported arguments:
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt32('0xc0fe');.
If the input value cannot be represented within the bounds of Int32, the result over or under flows.
This is not considered an error.
For example: SELECT toInt32(2147483648) == -2147483648;
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
See also:
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Expression
Returned value
Returns a 32-bit integer value. Int32
Examples
Usage example
toInt32OrDefault
Introduced in: v21.11
Like toInt32, this function converts an input value to a value of type Int32 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Stringor(U)Int*orFloat*default— Optional. The default value to return if parsing is unsuccessful.Int32
Returned value
Returns a value of type Int32 if successful, otherwise returns the default value if passed or 0 if not. Int32
Examples
Successful conversion
Failed conversion
toInt32OrNull
Introduced in: v1.1
Like toInt32, this function converts an input value to a value of type Int32 but returns NULL in case of an error.
Supported arguments:
- String representations of (U)Int*.
Unsupported arguments (return NULL):
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt32OrNull('0xc0fe');.
If the input value cannot be represented within the bounds of Int32, overflow or underflow of the result occurs. This is not considered an error.
See also:
Syntax
Arguments
x— A String representation of a number.String
Returned value
Returns a value of type Int32, otherwise NULL if the conversion is unsuccessful. Int32 or NULL
Examples
Usage example
toInt32OrZero
Introduced in: v1.1
Like toInt32, this function converts an input value to a value of type Int32 but returns 0 in case of an error.
Supported arguments:
- String representations of (U)Int*.
Unsupported arguments (return 0):
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt32OrZero('0xc0fe');.
If the input value cannot be represented within the bounds of Int32, overflow or underflow of the result occurs. This is not considered an error.
See also:
Syntax
Arguments
x— A String representation of a number.String
Returned value
Returns a value of type Int32, otherwise 0 if the conversion is unsuccessful. Int32
Examples
Usage example
toInt64
Introduced in: v1.1
Converts an input value to a value of type Int64.
Throws an exception in case of an error.
Supported arguments:
- Values or string representations of type (U)Int*.
- Values of type Float*.
Unsupported arguments:
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt64('0xc0fe');.
If the input value cannot be represented within the bounds of Int64, the result over or under flows.
This is not considered an error.
For example: SELECT toInt64(9223372036854775808) == -9223372036854775808;
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
See also:
Syntax
Arguments
expr— Expression returning a number or a string representation of a number. Supported: values or string representations of type (U)Int*, values of type Float*. Unsupported: string representations of Float* values including NaN and Inf, string representations of binary and hexadecimal values.Expression
Returned value
Returns a 64-bit integer value. Int64
Examples
Usage example
toInt64OrDefault
Introduced in: v21.11
Like toInt64, this function converts an input value to a value of type Int64 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Stringor(U)Int*orFloat*default— Optional. The default value to return if parsing is unsuccessful.Int64
Returned value
Returns a value of type Int64 if successful, otherwise returns the default value if passed, or 0 if not. Int64
Examples
Successful conversion
Failed conversion
toInt64OrNull
Introduced in: v1.1
Like toInt64, this function converts an input value to a value of type Int64 but returns NULL in case of an error.
Supported arguments:
- String representations of (U)Int*.
Unsupported arguments (return NULL):
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt64OrNull('0xc0fe');.
If the input value cannot be represented within the bounds of Int64, overflow or underflow of the result occurs. This is not considered an error.
See also:
Syntax
Arguments
x— A String representation of a number.String
Returned value
Returns a value of type Int64, otherwise NULL if the conversion is unsuccessful. Int64 or NULL
Examples
Usage example
toInt64OrZero
Introduced in: v1.1
Converts an input value to type Int64 but returns 0 in case of an error.
Like toInt64 but returns 0 instead of throwing an exception.
See also:
Syntax
Arguments
x— Input value to convert.StringorFixedStringorFloat*orDecimalor(U)Int*orDateorDateTime
Returned value
Returns the converted input value, otherwise 0 if conversion fails. Int64
Examples
Usage example
Failed conversion returns zero
toInt8
Introduced in: v1.1
Converts an input value to a value of type Int8.
Throws an exception in case of an error.
Supported arguments:
- Values or string representations of type (U)Int*.
- Values of type Float*.
Unsupported arguments:
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt8('0xc0fe');.
If the input value cannot be represented within the bounds of Int8, overflow or underflow of the result occurs.
This is not considered an error.
For example: SELECT toInt8(128) == -128;.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
See also:
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Expression
Returned value
Returns an 8-bit integer value. Int8
Examples
Usage example
toInt8OrDefault
Introduced in: v21.11
Like toInt8, this function converts an input value to a value of type Int8 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Stringor(U)Int*orFloat*default— Optional. The default value to return if parsing is unsuccessful.Int8
Returned value
Returns a value of type Int8 if successful, otherwise returns the default value if passed, or 0 if not. Int8
Examples
Successful conversion
Failed conversion
toInt8OrNull
Introduced in: v1.1
Like toInt8, this function converts an input value to a value of type Int8 but returns NULL in case of an error.
Supported arguments:
- String representations of (U)Int*.
Unsupported arguments (return NULL):
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt8OrNull('0xc0fe');.
If the input value cannot be represented within the bounds of Int8, overflow or underflow of the result occurs. This is not considered an error.
See also:
Syntax
Arguments
x— A String representation of a number.String
Returned value
Returns a value of type Int8, otherwise NULL if the conversion is unsuccessful. Int8 or NULL
Examples
Usage example
toInt8OrZero
Introduced in: v1.1
Like toInt8, this function converts an input value to a value of type Int8 but returns 0 in case of an error.
Supported arguments:
- String representations of (U)Int*.
Unsupported arguments (return 0):
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toInt8OrZero('0xc0fe');.
If the input value cannot be represented within the bounds of Int8, overflow or underflow of the result occurs. This is not considered an error.
See also:
Syntax
Arguments
x— A String representation of a number.String
Returned value
Returns a value of type Int8, otherwise 0 if the conversion is unsuccessful. Int8
Examples
Usage example
toInterval
Introduced in: v
Creates an interval from a value and a unit.
Syntax
Arguments
- None.
Returned value
Examples
toIntervalDay
Introduced in: v1.1
Returns an interval of n days of data type IntervalDay.
Syntax
Arguments
n— Number of days. Integer numbers or string representations thereof, and float numbers.(U)Int*orFloat*orString
Returned value
Returns an interval of n days. Interval
Examples
Usage example
toIntervalHour
Introduced in: v1.1
Returns an interval of n hours of data type IntervalHour.
Syntax
Arguments
n— Number of hours. Integer numbers or string representations thereof, and float numbers.Int*orUInt*orFloat*orString
Returned value
Returns an interval of n hours. Interval
Examples
Usage example
toIntervalMicrosecond
Introduced in: v22.6
Returns an interval of n microseconds of data type IntervalMicrosecond.
Syntax
Arguments
Returned value
Returns an interval of n microseconds. Interval
Examples
Usage example
toIntervalMillisecond
Introduced in: v22.6
Returns an interval of n milliseconds of data type IntervalMillisecond.
Syntax
Arguments
Returned value
Returns an interval of n milliseconds. Interval
Examples
Usage example
toIntervalMinute
Introduced in: v1.1
Returns an interval of n minutes of data type IntervalMinute.
Syntax
Arguments
n— Number of minutes. Integer numbers or string representations thereof, and float numbers.(U)Int*orFloat*orString
Returned value
Returns an interval of n minutes. Interval
Examples
Usage example
toIntervalMonth
Introduced in: v1.1
Returns an interval of n months of data type IntervalMonth.
Syntax
Arguments
Returned value
Returns an interval of n months. Interval
Examples
Usage example
toIntervalNanosecond
Introduced in: v22.6
Returns an interval of n nanoseconds of data type IntervalNanosecond.
Syntax
Arguments
Returned value
Returns an interval of n nanoseconds. Interval
Examples
Usage example
toIntervalQuarter
Introduced in: v1.1
Returns an interval of n quarters of data type IntervalQuarter.
Syntax
Arguments
Returned value
Returns an interval of n quarters. Interval
Examples
Usage example
toIntervalSecond
Introduced in: v1.1
Returns an interval of n seconds of data type IntervalSecond.
Syntax
Arguments
n— Number of seconds. Integer numbers or string representations thereof, and float numbers.(U)Int*orFloat*orString
Returned value
Returns an interval of n seconds. Interval
Examples
Usage example
toIntervalWeek
Introduced in: v1.1
Returns an interval of n weeks of data type IntervalWeek.
Syntax
Arguments
Returned value
Returns an interval of n weeks. Interval
Examples
Usage example
toIntervalYear
Introduced in: v1.1
Returns an interval of n years of data type IntervalYear.
Syntax
Arguments
Returned value
Returns an interval of n years. Interval
Examples
Usage example
toLowCardinality
Introduced in: v18.12
Converts the input argument to the LowCardinality version of same data type.
To convert from the LowCardinality data type to a regular data type, use the CAST function.
For example: CAST(x AS String).
Syntax
Arguments
expr— Expression resulting in one of the supported data types.StringorFixedStringorDateorDateTimeor(U)Int*orFloat*
Returned value
Returns the input value converted to the LowCardinality data type. LowCardinality
Examples
Usage example
toString
Introduced in: v1.1
Converts values to their string representation. For DateTime arguments, the function can take a second String argument containing the name of the time zone.
Syntax
Arguments
value— Value to convert to string.Anytimezone— Optional. Timezone name for DateTime conversion.String
Returned value
Returns a string representation of the input value. String
Examples
Usage example
toStringCutToZero
Introduced in: v1.1
Accepts a String or FixedString argument and returns a String that contains a copy of the original string truncated at the first null byte.
Null bytes (\0) are considered as string terminators. This function is useful for processing C-style strings or binary data where null bytes mark the end of meaningful content.
Syntax
Arguments
s— String or FixedString to process.StringorFixedString
Returned value
Returns a String containing the characters before the first null byte. String
Examples
Usage example
toTime
Introduced in: v1.1
Converts an input value to type Time. Supports conversion from String, FixedString, DateTime, or numeric types representing seconds since midnight.
Syntax
Arguments
x— Input value to convert.StringorFixedStringorDateTimeor(U)Int*orFloat*
Returned value
Returns the converted value. Time
Examples
String to Time conversion
DateTime to Time conversion
Integer to Time conversion
toTime64
Introduced in: v25.6
Converts an input value to type Time64. Supports conversion from String, FixedString, DateTime64, or numeric types representing microseconds since midnight. Provides microsecond precision for time values.
Syntax
Arguments
x— Input value to convert.StringorFixedStringorDateTime64or(U)Int*orFloat*
Returned value
Returns the converted input value with microsecond precision. Time64(6)
Examples
String to Time64 conversion
DateTime64 to Time64 conversion
Integer to Time64 conversion
toTime64OrNull
Introduced in: v25.6
Converts an input value to a value of type Time64 but returns NULL in case of an error.
Like toTime64 but returns NULL instead of throwing an exception on conversion errors.
See also:
Syntax
Arguments
x— A string representation of a time with subsecond precision.String
Returned value
Returns a Time64 value if successful, otherwise NULL. Time64 or NULL
Examples
Usage example
toTime64OrZero
Introduced in: v25.6
Converts an input value to a value of type Time64 but returns 00:00:00.000 in case of an error.
Like toTime64 but returns 00:00:00.000 instead of throwing an exception on conversion errors.
Syntax
Arguments
x— A string representation of a time with subsecond precision.String
Returned value
Returns a Time64 value if successful, otherwise 00:00:00.000. Time64
Examples
Usage example
toTimeOrNull
Introduced in: v1.1
Converts an input value to a value of type Time but returns NULL in case of an error.
Like toTime but returns NULL instead of throwing an exception on conversion errors.
See also:
Syntax
Arguments
x— A string representation of a time.String
Returned value
Returns a Time value if successful, otherwise NULL. Time or NULL
Examples
Usage example
toTimeOrZero
Introduced in: v1.1
Converts an input value to a value of type Time but returns 00:00:00 in case of an error.
Like toTime but returns 00:00:00 instead of throwing an exception on conversion errors.
Syntax
Arguments
x— A string representation of a time.String
Returned value
Returns a Time value if successful, otherwise 00:00:00. Time
Examples
Usage example
toUInt128
Introduced in: v1.1
Converts an input value to a value of type UInt128.
Throws an exception in case of an error.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Supported arguments:
- Values or string representations of type (U)Int*.
- Values of type Float*.
Unsupported arguments:
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt128('0xc0fe');.
If the input value cannot be represented within the bounds of UInt128, the result over or under flows. This is not considered an error.
See also:
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Expression
Returned value
Returns a 128-bit unsigned integer value. UInt128
Examples
Usage example
toUInt128OrDefault
Introduced in: v21.11
Like toUInt128, this function converts an input value to a value of type UInt128 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Stringor(U)Int*orFloat*default— Optional. The default value to return if parsing is unsuccessful.UInt128
Returned value
Returns a value of type UInt128 if successful, otherwise returns the default value if passed, or 0 if not. UInt128
Examples
Successful conversion
Failed conversion
toUInt128OrNull
Introduced in: v21.6
Like toUInt128, this function converts an input value to a value of type UInt128 but returns NULL in case of an error.
Supported arguments:
- String representations of (U)Int*.
Unsupported arguments (return NULL):
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt128OrNull('0xc0fe');.
If the input value cannot be represented within the bounds of UInt128, overflow or underflow of the result occurs.
This is not considered an error.
See also:
Syntax
Arguments
x— A String representation of a number.String
Returned value
Returns a value of type UInt128, otherwise NULL if the conversion is unsuccessful. UInt128 or NULL
Examples
Usage example
toUInt128OrZero
Introduced in: v1.1
Like toUInt128, this function converts an input value to a value of type UInt128 but returns 0 in case of an error.
Supported arguments:
- String representations of (U)Int*.
Unsupported arguments (return 0):
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt128OrZero('0xc0fe');.
If the input value cannot be represented within the bounds of UInt128, overflow or underflow of the result occurs.
This is not considered an error.
See also:
Syntax
Arguments
x— A String representation of a number.String
Returned value
Returns a value of type UInt128, otherwise 0 if the conversion is unsuccessful. UInt128
Examples
Usage example
toUInt16
Introduced in: v1.1
Converts an input value to a value of type UInt16.
Throws an exception in case of an error.
Supported arguments:
- Values or string representations of type (U)Int*.
- Values of type Float*.
Unsupported arguments:
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt16('0xc0fe');.
If the input value cannot be represented within the bounds of UInt16, overflow or underflow of the result occurs.
This is not considered an error.
For example: SELECT toUInt16(65536) == 0;.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
See also:
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Expression
Returned value
Returns a 16-bit unsigned integer value. UInt16
Examples
Usage example
toUInt16OrDefault
Introduced in: v21.11
Like toUInt16, this function converts an input value to a value of type UInt16 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Stringor(U)Int*orFloat*default— Optional. The default value to return if parsing is unsuccessful.UInt16
Returned value
Returns a value of type UInt16 if successful, otherwise returns the default value if passed, or 0 if not. UInt16
Examples
Successful conversion
Failed conversion
toUInt16OrNull
Introduced in: v1.1
Like toUInt16, this function converts an input value to a value of type UInt16 but returns NULL in case of an error.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return NULL):
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt16OrNull('0xc0fe');.
If the input value cannot be represented within the bounds of UInt16, overflow or underflow of the result occurs.
This is not considered an error.
See also:
Syntax
Arguments
x— A String representation of a number.String
Returned value
Returns a value of type UInt16, otherwise NULL if the conversion is unsuccessful. UInt16 or NULL
Examples
Usage example
toUInt16OrZero
Introduced in: v1.1
Like toUInt16, this function converts an input value to a value of type UInt16 but returns 0 in case of an error.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return 0):
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt16OrZero('0xc0fe');.
If the input value cannot be represented within the bounds of UInt16, overflow or underflow of the result occurs.
This is not considered an error.
See also:
Syntax
Arguments
x— A String representation of a number.String
Returned value
Returns a value of type UInt16, otherwise 0 if the conversion is unsuccessful. UInt16
Examples
Usage example
toUInt256
Introduced in: v1.1
Converts an input value to a value of type UInt256. Throws an exception in case of an error. The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
Supported arguments:
- Values or string representations of type (U)Int*.
- Values of type Float*.
Unsupported arguments:
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt256('0xc0fe');.
If the input value cannot be represented within the bounds of UInt256, the result over or under flows. This is not considered an error.
See also:
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Expression
Returned value
Returns a 256-bit unsigned integer value. UInt256
Examples
Usage example
toUInt256OrDefault
Introduced in: v21.11
Like toUInt256, this function converts an input value to a value of type UInt256 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Stringor(U)Int*orFloat*default— Optional. The default value to return if parsing is unsuccessful.UInt256
Returned value
Returns a value of type UInt256 if successful, otherwise returns the default value if passed, or 0 if not. UInt256
Examples
Successful conversion
Failed conversion
toUInt256OrNull
Introduced in: v20.8
Like toUInt256, this function converts an input value to a value of type UInt256 but returns NULL in case of an error.
Supported arguments:
- String representations of (U)Int*.
Unsupported arguments (return NULL):
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt256OrNull('0xc0fe');.
If the input value cannot be represented within the bounds of UInt256, overflow or underflow of the result occurs.
This is not considered an error.
See also:
Syntax
Arguments
x— A String representation of a number.String
Returned value
Returns a value of type UInt256, otherwise NULL if the conversion is unsuccessful. UInt256 or NULL
Examples
Usage example
toUInt256OrZero
Introduced in: v20.8
Like toUInt256, this function converts an input value to a value of type UInt256 but returns 0 in case of an error.
Supported arguments:
- String representations of (U)Int*.
Unsupported arguments (return 0):
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt256OrZero('0xc0fe');.
If the input value cannot be represented within the bounds of UInt256, overflow or underflow of the result occurs.
This is not considered an error.
See also:
Syntax
Arguments
x— A String representation of a number.String
Returned value
Returns a value of type UInt256, otherwise 0 if the conversion is unsuccessful. UInt256
Examples
Usage example
toUInt32
Introduced in: v1.1
Converts an input value to a value of type UInt32.
Throws an exception in case of an error.
Supported arguments:
- Values or string representations of type (U)Int*.
- Values of type Float*.
Unsupported arguments:
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt32('0xc0fe');.
If the input value cannot be represented within the bounds of UInt32, the result over or under flows.
This is not considered an error.
For example: SELECT toUInt32(4294967296) == 0;
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
See also:
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Expression
Returned value
Returns a 32-bit unsigned integer value. UInt32
Examples
Usage example
toUInt32OrDefault
Introduced in: v21.11
Like toUInt32, this function converts an input value to a value of type UInt32 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Stringor(U)Int*orFloat*default— Optional. The default value to return if parsing is unsuccessful.UInt32
Returned value
Returns a value of type UInt32 if successful, otherwise returns the default value if passed, or 0 if not. UInt32
Examples
Successful conversion
Failed conversion
toUInt32OrNull
Introduced in: v1.1
Like toUInt32, this function converts an input value to a value of type UInt32 but returns NULL in case of an error.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return NULL):
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt32OrNull('0xc0fe');.
If the input value cannot be represented within the bounds of UInt32, overflow or underflow of the result occurs.
This is not considered an error.
See also:
Syntax
Arguments
x— A String representation of a number.String
Returned value
Returns a value of type UInt32, otherwise NULL if the conversion is unsuccessful. UInt32 or NULL
Examples
Usage example
toUInt32OrZero
Introduced in: v1.1
Like toUInt32, this function converts an input value to a value of type UInt32 but returns 0 in case of an error.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return 0):
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt32OrZero('0xc0fe');.
If the input value cannot be represented within the bounds of UInt32, overflow or underflow of the result occurs.
This is not considered an error.
See also:
Syntax
Arguments
x— A String representation of a number.String
Returned value
Returns a value of type UInt32, otherwise 0 if the conversion is unsuccessful. UInt32
Examples
Usage example
toUInt64
Introduced in: v1.1
Converts an input value to a value of type UInt64.
Throws an exception in case of an error.
Supported arguments:
- Values or string representations of type (U)Int*.
- Values of type Float*.
Unsupported types:
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt64('0xc0fe');.
If the input value cannot be represented within the bounds of UInt64, the result over or under flows.
This is not considered an error.
For example: SELECT toUInt64(18446744073709551616) == 0;
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
See also:
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Expression
Returned value
Returns a 64-bit unsigned integer value. UInt64
Examples
Usage example
toUInt64OrDefault
Introduced in: v21.11
Like toUInt64, this function converts an input value to a value of type UInt64 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Stringor(U)Int*orFloat*default— Optional. The default value to return if parsing is unsuccessful.UInt64
Returned value
Returns a value of type UInt64 if successful, otherwise returns the default value if passed, or 0 if not. UInt64
Examples
Successful conversion
Failed conversion
toUInt64OrNull
Introduced in: v1.1
Like toUInt64, this function converts an input value to a value of type UInt64 but returns NULL in case of an error.
Supported arguments:
- String representations of (U)Int*.
Unsupported arguments (return NULL):
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt64OrNull('0xc0fe');.
If the input value cannot be represented within the bounds of UInt64, overflow or underflow of the result occurs.
This is not considered an error.
See also:
Syntax
Arguments
x— A String representation of a number.String
Returned value
Returns a value of type UInt64, otherwise NULL if the conversion is unsuccessful. UInt64 or NULL
Examples
Usage example
toUInt64OrZero
Introduced in: v1.1
Like toUInt64, this function converts an input value to a value of type UInt64 but returns 0 in case of an error.
Supported arguments:
- String representations of (U)Int*.
Unsupported arguments (return 0):
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt64OrZero('0xc0fe');.
If the input value cannot be represented within the bounds of UInt64, overflow or underflow of the result occurs.
This is not considered an error.
See also:
Syntax
Arguments
x— A String representation of a number.String
Returned value
Returns a value of type UInt64, otherwise 0 if the conversion is unsuccessful. UInt64
Examples
Usage example
toUInt8
Introduced in: v1.1
Converts an input value to a value of type UInt8.
Throws an exception in case of an error.
Supported arguments:
- Values or string representations of type (U)Int*.
- Values of type Float*.
Unsupported arguments:
- String representations of Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt8('0xc0fe');.
If the input value cannot be represented within the bounds of UInt8, overflow or underflow of the result occurs.
This is not considered an error.
For example: SELECT toUInt8(256) == 0;.
The function uses rounding towards zero, meaning it truncates fractional digits of numbers.
See also:
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Expression
Returned value
Returns an 8-bit unsigned integer value. UInt8
Examples
Usage example
toUInt8OrDefault
Introduced in: v21.11
Like toUInt8, this function converts an input value to a value of type UInt8 but returns the default value in case of an error.
If no default value is passed then 0 is returned in case of an error.
Syntax
Arguments
expr— Expression returning a number or a string representation of a number.Stringor(U)Int*orFloat*default— Optional. The default value to return if parsing is unsuccessful.UInt8
Returned value
Returns a value of type UInt8 if successful, otherwise returns the default value if passed, or 0 if not. UInt8
Examples
Successful conversion
Failed conversion
toUInt8OrNull
Introduced in: v1.1
Like toUInt8, this function converts an input value to a value of type UInt8 but returns NULL in case of an error.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return NULL):
- String representations of ordinary Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt8OrNull('0xc0fe');.
If the input value cannot be represented within the bounds of UInt8, overflow or underflow of the result occurs.
This is not considered an error.
See also:
Syntax
Arguments
x— A String representation of a number.String
Returned value
Returns a value of type UInt8, otherwise NULL if the conversion is unsuccessful. UInt8 or NULL
Examples
Usage example
toUInt8OrZero
Introduced in: v1.1
Like toUInt8, this function converts an input value to a value of type UInt8 but returns 0 in case of an error.
Supported arguments:
- String representations of (U)Int8/16/32/128/256.
Unsupported arguments (return 0):
- String representations of ordinary Float* values, including
NaNandInf. - String representations of binary and hexadecimal values, e.g.
SELECT toUInt8OrZero('0xc0fe');.
If the input value cannot be represented within the bounds of UInt8, overflow or underflow of the result occurs.
This is not considered an error.
See also:
Syntax
Arguments
x— A String representation of a number.String
Returned value
Returns a value of type UInt8, otherwise 0 if the conversion is unsuccessful. UInt8
Examples
Usage example
toUUID
Introduced in: v1.1
Converts a String value to a UUID value.
Syntax
Arguments
string— UUID as a string.StringorFixedString
Returned value
Returns a UUID from the string representation of the UUID. UUID
Examples
Usage example
toUUIDOrZero
Introduced in: v20.12
Converts an input value to a value of type UUID but returns zero UUID in case of an error.
Like toUUID but returns zero UUID (00000000-0000-0000-0000-000000000000) instead of throwing an exception on conversion errors.
Supported arguments:
- String representations of UUID in standard format (8-4-4-4-12 hexadecimal digits).
- String representations of UUID without hyphens (32 hexadecimal digits).
Unsupported arguments (return zero UUID):
- Invalid string formats.
- Non-string types.
Syntax
Arguments
x— A string representation of a UUID.String
Returned value
Returns a UUID value if successful, otherwise zero UUID (00000000-0000-0000-0000-000000000000). UUID
Examples
Usage example
toUnixTimestamp64Micro
Introduced in: v20.5
Converts a DateTime64 to a Int64 value with fixed microsecond precision.
The input value is scaled up or down appropriately depending on its precision.
The output value is relative to UTC, not to the timezone of the input value.
Syntax
Arguments
value— DateTime64 value with any precision.DateTime64
Returned value
Returns a Unix timestamp in microseconds. Int64
Examples
Usage example
toUnixTimestamp64Milli
Introduced in: v20.5
Converts a DateTime64 to a Int64 value with fixed millisecond precision.
The input value is scaled up or down appropriately depending on its precision.
The output value is relative to UTC, not to the timezone of the input value.
Syntax
Arguments
value— DateTime64 value with any precision.DateTime64
Returned value
Returns a Unix timestamp in milliseconds. Int64
Examples
Usage example
toUnixTimestamp64Nano
Introduced in: v20.5
Converts a DateTime64 to a Int64 value with fixed nanosecond precision.
The input value is scaled up or down appropriately depending on its precision.
The output value is relative to UTC, not to the timezone of the input value.
Syntax
Arguments
value— DateTime64 value with any precision.DateTime64
Returned value
Returns a Unix timestamp in nanoseconds. Int64
Examples
Usage example
toUnixTimestamp64Second
Introduced in: v24.12
Converts a DateTime64 to a Int64 value with fixed second precision.
The input value is scaled up or down appropriately depending on its precision.
The output value is relative to UTC, not to the timezone of the input value.
Syntax
Arguments
value— DateTime64 value with any precision.DateTime64
Returned value
Returns a Unix timestamp in seconds. Int64
Examples
Usage example