Цитата из руководства
PostgreSQL принимает два эквивалентных синтаксиса для приведений типов:
CAST ( expression AS type )
expression::type
Синтаксис CAST соответствует SQL; синтаксис с :: является историческим использованием PostgreSQL.
(акцент мой)
Так что оба делают одно и то же, cast()
является стандартным SQL, ::
- специфичным для Postgres.
Обратите внимание, что существует третий способ кастования (как описано в руководстве)
Также возможно указать приведение типа с использованием функционально-подобного синтаксиса:
typename ( expression )
Но это не рекомендуется, так как в руководстве написано: " Очевидно, что это не то, на что переносное приложение должно полагаться "