| The PostgreSQL 9.0 Reference Manual - Volume 1A - SQL Language Reference
by The PostgreSQL Global Development Group Paperback (6"x9"), 454 pages ISBN 9781906966041 RRP £14.95 ($19.95) Sales of this book support the PostgreSQL project! Get a printed copy>>> |
2.1.2.7 Constants of Other Types
A constant of an arbitrary type can be entered using any one of the following notations:
type 'string' 'string'::type CAST ( 'string' AS type )
The string constant's text is passed to the input conversion routine for the type called type. The result is a constant of the indicated type. The explicit type cast can be omitted if there is no ambiguity as to the type the constant must be (for example, when it is assigned directly to a table column), in which case it is automatically coerced.
The string constant can be written using either regular SQL notation or dollar-quoting.
It is also possible to specify a type coercion using a function-like syntax:
typename ( 'string' )
but not all type names can be used in this way; see section 2.2.9 Type Casts for details.
The ::, CAST(), and
function-call syntaxes can also be used to specify run-time type
conversions of arbitrary expressions, as discussed in section 2.2.9 Type Casts. To avoid syntactic ambiguity, the
type 'string'
syntax can only be used to specify the type of a simple literal constant.
Another restriction on the
type 'string'
syntax is that it does not work for array types; use ::
or CAST() to specify the type of an array constant.
The CAST() syntax conforms to SQL. The
type 'string'
syntax is a generalization of the standard: SQL specifies this syntax only
for a few data types, but PostgreSQL allows it
for all types. The syntax with
:: is historical PostgreSQL
usage, as is the function-call syntax.
| ISBN 9781906966041 | The PostgreSQL 9.0 Reference Manual - Volume 1A - SQL Language Reference | See the print edition |