Что делает: делать в PostgreSQL? [дубликат]
этот вопрос уже есть ответ здесь:
двойное двоеточие (:: нотация) в SQL
4 ответы
Я видел :: в различных местах с участием кода postgres я видел в сети. Например:
SELECT '{apple,cherry apple, avocado}'::text[];
кажется, это какой-то актерский состав. Что именно такое :: в postgres и когда следует ли его использовать?
я попробовал немного погуглить и искал документы Postgres для ::, но не получил хороших результатов.
Я попробовал следующие поиски в Google:
- двойной двоеточие postgres
- postgres::
- ::
я попробовал следующие поиски в кнопке поиска документов postgres
- двойной
- двойное двоеточие
- ::
это было почти неловко спрашивать об этом, но я подумал, что Google, надеюсь, увидит этот ответ для других людей в будущем.
2 ответов:
приведение типа определяет преобразование из одного типа данных в другой.
PostgreSQL принимает два эквивалентных синтаксиса для приведений типов, специфичных для PostgreSQL
value::typeи SQL-стандартCAST(value AS type).в данном конкретном случае,
'{apple,cherry apple, avocado}'::text[];принимает строковый литерал{apple,cherry apple, avocado}и говорит PostgreSQL интерпретировать его как массивtext.смотрите документацию по выражения SQL и массивы для подробности.
что написали @PSR и @Craig.
Плюс, есть еще два варианта синтаксис:1.
type valueэта форма только приводит константы (строковые литералы). Например:
SELECT date '2013-03-21';подробнее в руководстве в главе константы других типов.
2.
type(value)это функциональный синтаксис. Работает только для типов, имена которых допустимы как имена функций. Например:
SELECT date(date_as_text_col) FROM tbl;подробнее в руководстве в главе Тип Забросы.
Comments