CONVERT function - Amazon Redshift

CONVERT function

Like the CAST function, the CONVERT function converts one data type to another compatible data type. For instance, you can convert a string to a date, or a numeric type to a string. CONVERT performs a runtime conversion, which means that the conversion doesn't change a value's data type in a source table. It's changed only in the context of the query.

Certain data types require an explicit conversion to other data types using the CONVERT function. Other data types can be converted implicitly, as part of another command, without using CAST or CONVERT. See Type compatibility and conversion.

Syntax

CONVERT ( type, expression )

Arguments

type

One of the supported Data types.

expression

An expression that evaluates to one or more values, such as a column name or a literal. Converting null values returns nulls. The expression cannot contain blank or empty strings.

Return type

CONVERT returns the data type specified by the type argument.

Note

Amazon Redshift returns an error if you try to perform a problematic conversion, such as a DECIMAL conversion that loses precision, like the following:

SELECT CONVERT(decimal(2,1), 123.456);

or an INTEGER conversion that causes an overflow:

SELECT CONVERT(smallint, 12345678);

Examples

Some of the examples use the sample TICKIT database. For more information about setting up sample data, see Load data.

The following query uses the CONVERT function to convert a column of decimals into integers

SELECT CONVERT(integer, pricepaid) FROM sales WHERE salesid=100;

This example converts an integer into a character string.

SELECT CONVERT(char(4), 2008);

In this example, the current date and time is converted to a variable character data type:

SELECT CONVERT(VARCHAR(30), GETDATE()); getdate --------- 2023-02-02 04:31:16

This example converts the saletime column into just the time, removing the dates from each row.

SELECT CONVERT(time, saletime), salesid FROM sales order by salesid limit 10;

For information about converting a timestamp from one time zone to another, see the CONVERT_TIMEZONE function. For additional date and time functions, see Date and time functions.

The following example converts variable character data into a datetime object.

SELECT CONVERT(datetime, '2008-02-18 02:36:48') as mysaletime;
Note

You can't perform a CAST or CONVERT operation on the GEOMETRY data type to change it to another data type. However, you can provide a hexadecimal representation of a string literal in extended well-known binary (EWKB) format as input to functions that accept a GEOMETRY argument. For example, the ST_AsText function following expects a GEOMETRY data type.

SELECT ST_AsText('01010000000000000000001C400000000000002040');
st_astext ------------ POINT(7 8)

You can also explicitly specify the GEOMETRY data type.

SELECT ST_AsText('010100000000000000000014400000000000001840'::geometry);
st_astext ------------ POINT(5 6)