This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Conversion Functions

This section provides reference information for the conversion functions in PlaidCloud Lakehouse.

Please note the following when converting a value from one type to another:

  • When converting from floating-point, decimal numbers, or strings to integers or decimal numbers with fractional parts, PlaidCloud Lakehouse rounds the values to the nearest integer. This is determined by the setting numeric_cast_option (defaults to 'rounding') which controls the behavior of numeric casting operations. When numeric_cast_option is explicitly set to 'truncating', PlaidCloud Lakehouse will truncate the decimal part, discarding any fractional values.

    SELECT CAST('0.6' AS DECIMAL(10, 0)), CAST(0.6 AS DECIMAL(10, 0)), CAST(1.5 AS INT);
    
    ┌──────────────────────────────────────────────────────────────────────────────────┐
     cast('0.6' as decimal(10, 0))  cast(0.6 as decimal(10, 0))  cast(1.5 as int32) 
    ├───────────────────────────────┼─────────────────────────────┼────────────────────┤
                                 1                            1                   2 
    └──────────────────────────────────────────────────────────────────────────────────┘
    
    SET numeric_cast_option = 'truncating';
    
    SELECT CAST('0.6' AS DECIMAL(10, 0)), CAST(0.6 AS DECIMAL(10, 0)), CAST(1.5 AS INT);
    
    ┌──────────────────────────────────────────────────────────────────────────────────┐
     cast('0.6' as decimal(10, 0))  cast(0.6 as decimal(10, 0))  cast(1.5 as int32) 
    ├───────────────────────────────┼─────────────────────────────┼────────────────────┤
                                 0                            0                   1 
    └──────────────────────────────────────────────────────────────────────────────────┘
    

    The table below presents a summary of numeric casting operations, highlighting the casting possibilities between different source and target numeric data types. Please note that, it specifies the requirement for String to Integer casting, where the source string must contain an integer value.

    Source TypeTarget Type
    StringDecimal
    FloatDecimal
    DecimalDecimal
    FloatInt
    DecimalInt
    String (Int)Int
  • PlaidCloud Lakehouse also offers a variety of functions for converting expressions into different date and time formats. For more information, see Date & Time Functions.

1 - BUILD_BITMAP

Converts an array of positive integers to a BITMAP value.

Analyze Syntax

func.build_bitmap( <expr> )

Analyze Examples

func.to_string(func.build_bitmap([1, 4, 5]))

┌───────────────────────────────────────────────┐
 func.to_string(func.build_bitmap([1, 4, 5]))  
├───────────────────────────────────────────────┤
 1,4,5                                         
└───────────────────────────────────────────────┘

SQL Syntax

BUILD_BITMAP( <expr> )

SQL Examples

SELECT BUILD_BITMAP([1,4,5])::String;

┌─────────────────────────────────┐
 build_bitmap([1, 4, 5])::string 
├─────────────────────────────────┤
 1,4,5                           
└─────────────────────────────────┘

2 - CAST, ::

Converts a value from one data type to another. :: is an alias for CAST.

See also: TRY_CAST

Analyze Syntax

func.cast( <expr>, <data_type> )

Analyze Examples

func.cast(1, string), func.to_string(1)

┌───────────────────────────────────────────┐
 func.cast(1, string)  func.to_string(1)  
├──────────────────────┼────────────────────┤
 1                     1                  
└───────────────────────────────────────────┘

SQL Syntax

CAST( <expr> AS <data_type> )

<expr>::<data_type>

SQL Examples

SELECT CAST(1 AS VARCHAR), 1::VARCHAR;

┌───────────────────────────────┐
 cast(1 as string)  1::string 
├───────────────────┼───────────┤
 1                  1         
└───────────────────────────────┘

3 - TO_BITMAP

Converts a value to BITMAP data type.

Analyze Syntax

func.to_bitmap( <expr> )

Analyze Examples

func.to_bitmap('1101')

┌─────────────────────────┐
 func.to_bitmap('1101')  
├─────────────────────────┤
 <bitmap binary>         
└─────────────────────────┘

SQL Syntax

TO_BITMAP( <expr> )

SQL Examples

SELECT TO_BITMAP('1101');

┌───────────────────┐
 to_bitmap('1101') 
├───────────────────┤
 <bitmap binary>   
└───────────────────┘

4 - TO_BOOLEAN

Converts a value to BOOLEAN data type.

Analyze Syntax

func.to_boolean( <expr> )

Analyze Examples

func.to_boolean('true')

┌──────────────────────────┐
 func.to_boolean('true')  
├──────────────────────────┤
 true                     
└──────────────────────────┘

SQL Syntax

TO_BOOLEAN( <expr> )

SQL Examples

SELECT TO_BOOLEAN('true');

┌────────────────────┐
 to_boolean('true') 
├────────────────────┤
 true               
└────────────────────┘

5 - TO_FLOAT32

Converts a value to FLOAT32 data type.

Analyze Syntax

func.to_float32( <expr> )

Analyze Examples

func.to_float32('1.2')

┌─────────────────────────┐
 func.to_float32('1.2')  
├─────────────────────────┤
                     1.2 
└─────────────────────────┘

SQL Syntax

TO_FLOAT32( <expr> )

SQL Examples

SELECT TO_FLOAT32('1.2');

┌───────────────────┐
 to_float32('1.2') 
├───────────────────┤
               1.2 
└───────────────────┘

6 - TO_FLOAT64

Converts a value to FLOAT64 data type.

Analyze Syntax

func.to_float64( <expr> )

Analyze Examples

func.to_float64('1.2')

┌─────────────────────────┐
 func.to_float64('1.2')  
├─────────────────────────┤
                     1.2 
└─────────────────────────┘

SQL Syntax

TO_FLOAT64( <expr> )

SQL Examples

SELECT TO_FLOAT64('1.2');

┌───────────────────┐
 to_float64('1.2') 
├───────────────────┤
               1.2 
└───────────────────┘

7 - TO_HEX

For a string argument str, TO_HEX() returns a hexadecimal string representation of str where each byte of each character in str is converted to two hexadecimal digits. The inverse of this operation is performed by the UNHEX() function.

For a numeric argument N, TO_HEX() returns a hexadecimal string representation of the value of N treated as a longlong (BIGINT) number.

Analyze Syntax

func.to_hex(<expr>)

Analyze Examples

func.to_hex('abc')

┌────────────────────┐
 func.to_hex('abc') 
├────────────────────┤
 616263             
└────────────────────┘

SQL Syntax

TO_HEX(<expr>)

Aliases

SQL Examples

SELECT HEX('abc'), TO_HEX('abc');

┌────────────────────────────┐
 hex('abc')  to_hex('abc') 
├────────────┼───────────────┤
 616263      616263        
└────────────────────────────┘

SELECT HEX(255), TO_HEX(255);

┌────────────────────────┐
 hex(255)  to_hex(255) 
├──────────┼─────────────┤
 ff        ff          
└────────────────────────┘

8 - TO_INT16

Converts a value to INT16 data type.

Analyze Syntax

func.to_int16( <expr> )

Analyze Examples

func.to_int16('123')

┌──────────────────────┐
 func.to_int16('123') 
├──────────────────────┤
                  123 
└──────────────────────┘

SQL Syntax

TO_INT16( <expr> )

SQL Examples

SELECT TO_INT16('123');

┌─────────────────┐
 to_int16('123') 
├─────────────────┤
             123 
└─────────────────┘

9 - TO_INT32

Converts a value to INT32 data type.

Analyze Syntax

func.to_int32( <expr> )

Analyze Examples

func.to_int32('123')

┌──────────────────────┐
 func.to_int32('123') 
├──────────────────────┤
                  123 
└──────────────────────┘

SQL Syntax

TO_INT32( <expr> )

SQL Examples

SELECT TO_INT32('123');

┌─────────────────┐
 to_int32('123') 
├─────────────────┤
             123 
└─────────────────┘

10 - TO_INT64

Converts a value to INT64 data type.

Analyze Syntax

func.to_int64( <expr> )

Analyze Examples

func.to_int64('123')

┌──────────────────────┐
 func.to_int64('123') 
├──────────────────────┤
                  123 
└──────────────────────┘

SQL Syntax

TO_INT64( <expr> )

SQL Examples

SELECT TO_INT64('123');

┌─────────────────┐
 to_int64('123') 
├─────────────────┤
             123 
└─────────────────┘

11 - TO_INT8

Converts a value to INT8 data type.

Analyze Syntax

func.to_int8( <expr> )

Analyze Examples

func.to_int8('123')

┌─────────────────────┐
 func.to_int8('123') 
├─────────────────────┤
                 123 
└─────────────────────┘

SQL Syntax

TO_INT8( <expr> )

SQL Examples

SELECT TO_INT8('123');

┌────────────────┐
 to_int8('123') 
      UInt8     
├────────────────┤
            123 
└────────────────┘

12 - TO_STRING

Converts a value to String data type, or converts a Date value to a specific string format. To customize the format of date and time in PlaidCloud Lakehouse, you can utilize specifiers. These specifiers allow you to define the desired format for date and time values. For a comprehensive list of supported specifiers, see Formatting Date and Time.

Analyze Syntax

func.to_string( '<expr>' )

Analyze Examples

func.date_format('1.23'), func.to_string('1.23'), func.to_text('1.23'), func.to_varchar('1.23'), func.json_to_string('1.23')

┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
 func.date_format('1.23')  func.to_string('1.23')  func.to_text('1.23')  func.to_varchar('1.23')  func.json_to_string('1.23') 
├──────────────────────────┼────────────────────────┼──────────────────────┼─────────────────────────┼─────────────────────────────┤
 1.23                      1.23                    1.23                  1.23                     1.23                        
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ 

SQL Syntax

TO_STRING( '<expr>' )

TO_STRING( '<date>', '<format>' )

Aliases

Return Type

String.

SQL Examples

SELECT
  DATE_FORMAT('1.23'),
  TO_STRING('1.23'),
  TO_TEXT('1.23'),
  TO_VARCHAR('1.23'),
  JSON_TO_STRING('1.23');

┌─────────────────────────────────────────────────────────────────────────────────────────────────────────┐
 date_format('1.23')  to_string('1.23')  to_text('1.23')  to_varchar('1.23')  json_to_string('1.23') 
├─────────────────────┼───────────────────┼─────────────────┼────────────────────┼────────────────────────┤
 1.23                 1.23               1.23             1.23                1.23                   
└─────────────────────────────────────────────────────────────────────────────────────────────────────────┘

SELECT
  DATE_FORMAT('["Cooking", "Reading"]' :: JSON),
  TO_STRING('["Cooking", "Reading"]' :: JSON),
  TO_TEXT('["Cooking", "Reading"]' :: JSON),
  TO_VARCHAR('["Cooking", "Reading"]' :: JSON),
  JSON_TO_STRING('["Cooking", "Reading"]' :: JSON);

┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
 date_format('["cooking", "reading"]'::variant)  to_string('["cooking", "reading"]'::variant)  to_text('["cooking", "reading"]'::variant)  to_varchar('["cooking", "reading"]'::variant)  json_to_string('["cooking", "reading"]'::variant) 
├────────────────────────────────────────────────┼──────────────────────────────────────────────┼────────────────────────────────────────────┼───────────────────────────────────────────────┼───────────────────────────────────────────────────┤
 ["Cooking","Reading"]                           ["Cooking","Reading"]                         ["Cooking","Reading"]                       ["Cooking","Reading"]                          ["Cooking","Reading"]                             
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

-- With one argument, the function converts input to a string without validating as a date.
SELECT
  DATE_FORMAT('20223-12-25'),
  TO_STRING('20223-12-25'),
  TO_TEXT('20223-12-25'),
  TO_VARCHAR('20223-12-25'),
  JSON_TO_STRING('20223-12-25');

┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
 date_format('20223-12-25')  to_string('20223-12-25')  to_text('20223-12-25')  to_varchar('20223-12-25')  json_to_string('20223-12-25') 
├────────────────────────────┼──────────────────────────┼────────────────────────┼───────────────────────────┼───────────────────────────────┤
 20223-12-25                 20223-12-25               20223-12-25             20223-12-25                20223-12-25                   
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

SELECT
  DATE_FORMAT('2022-12-25', '%m/%d/%Y'),
  TO_STRING('2022-12-25', '%m/%d/%Y'),
  TO_TEXT('2022-12-25', '%m/%d/%Y'),
  TO_VARCHAR('2022-12-25', '%m/%d/%Y'),
  JSON_TO_STRING('2022-12-25', '%m/%d/%Y');

┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
 date_format('2022-12-25', '%m/%d/%y')  to_string('2022-12-25', '%m/%d/%y')  to_text('2022-12-25', '%m/%d/%y')  to_varchar('2022-12-25', '%m/%d/%y')  json_to_string('2022-12-25', '%m/%d/%y') 
├───────────────────────────────────────┼─────────────────────────────────────┼───────────────────────────────────┼──────────────────────────────────────┼──────────────────────────────────────────┤
 12/25/2022                             12/25/2022                           12/25/2022                         12/25/2022                            12/25/2022                               
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

13 - TO_TEXT

Alias for TO_STRING.

14 - TO_UINT16

Converts a value to UINT16 data type.

Analyze Syntax

func.to_uint16( <expr> )

Analyze Examples

func.to_uint16('123')

┌───────────────────────┐
 func.to_uint16('123') 
├───────────────────────┤
                   123 
└───────────────────────┘

SQL Syntax

TO_UINT16( <expr> )

SQL Examples

SELECT TO_UINT16('123');

┌──────────────────┐
 to_uint16('123') 
├──────────────────┤
              123 
└──────────────────┘

15 - TO_UINT32

Converts a value to UINT32 data type.

Analyze Syntax

func.to_uint32( <expr> )

Analyze Examples

func.to_uint32('123')

┌───────────────────────┐
 func.to_uint32('123') 
├───────────────────────┤
                   123 
└───────────────────────┘

SQL Syntax

TO_UINT32( <expr> )

SQL Examples

SELECT TO_UINT32('123');

┌──────────────────┐
 to_uint32('123') 
├──────────────────┤
              123 
└──────────────────┘

16 - TO_UINT64

Converts a value to UINT64 data type.

Analyze Syntax

func.to_uint64( <expr> )

Analyze Examples

func.to_uint64('123')

┌───────────────────────┐
 func.to_uint64('123') 
├───────────────────────┤
                   123 
└───────────────────────┘

SQL Syntax

TO_UINT64( <expr> )

SQL Examples

SELECT TO_UINT64('123');

┌──────────────────┐
 to_uint64('123') 
├──────────────────┤
              123 
└──────────────────┘

17 - TO_UINT8

Converts a value to UINT8 data type.

Analyze Syntax

func.to_uint8( <expr> )

Analyze Examples

func.to_uint8('123')

┌──────────────────────┐
 func.to_uint8('123') 
├──────────────────────┤
                  123 
└──────────────────────┘

SQL Syntax

TO_UINT8( <expr> )

SQL Examples

SELECT TO_UINT8('123');

┌─────────────────┐
 to_uint8('123') 
├─────────────────┤
             123 
└─────────────────┘

18 - TO_VARCHAR

Alias for TO_STRING.

19 - TO_VARIANT

Converts a value to VARIANT data type.

Analyze Syntax

func.to_variant( <expr> )

Analyze Examples

func.to_variant(to_bitmap('100,200,300'))

┌───────────────────────────────────────────┐
 func.to_variant(to_bitmap('100,200,300')) 
├───────────────────────────────────────────┤
 [100,200,300]                             
└───────────────────────────────────────────┘

SQL Syntax

TO_VARIANT( <expr> )

SQL Examples

SELECT TO_VARIANT(TO_BITMAP('100,200,300'));

┌──────────────────────────────────────┐
 to_variant(to_bitmap('100,200,300')) 
├──────────────────────────────────────┤
 [100,200,300]                        
└──────────────────────────────────────┘

20 - TRY_CAST

Converts a value from one data type to another. Returns NULL on error.

See also: CAST

Analyze Syntax

func.try_cast( <expr>, <data_type> )

Analyze Examples

func.try_cast(1, string)

┌──────────────────────────┐
 func.try_cast(1, string) 
├──────────────────────────┤
 1                        
└──────────────────────────┘

SQL Syntax

TRY_CAST( <expr> AS <data_type> )

SQL Examples

SELECT TRY_CAST(1 AS VARCHAR);

┌───────────────────────┐
 try_cast(1 as string) 
├───────────────────────┤
 1                     
└───────────────────────┘