Invoke casts

For built-in casts and user-defined implicit casts, the database server automatically (implicitly) invokes the cast to handle the data conversion. For example, you can compare a value of type INT with SMALLINT, FLOAT, or CHAR values without explicitly casting the expression because the database server provides system-defined casts to transparently handle conversions between these built-in data types.

When you define an explicit user-defined cast to handle conversions between two data types, you must explicitly invoke the cast with either the CAST...AS keywords or the double-colon cast operator (::). The following partial examples show the two ways that you can invoke an explicit cast:
... WHERE new_col = CAST(old_col AS newtype)

... WHERE new_col = old_col::newtype