Resumo: neste tutorial, vamos mostrar como usar o PostgreSQL CAST operador para converter um valor de um tipo para outro.

Introdução ao operador PostgreSQL CAST

Existem muitos casos em que você quer converter um valor de um tipo de dado para outro. PostgreSQL fornece o operador CAST que permite fazer isso.

O seguinte ilustra a sintaxe do tipo CAST:

Code language: SQL (Structured Query Language) (sql)

Nesta sintaxe:

  • Primeiro, especifique uma expressão que pode ser uma constante, uma coluna de tabela, uma expressão que avalia para um valor.
  • Então, especifique o tipo de dado alvo para o qual você quer converter o resultado da expressão.
  • >

Lingotamento do tipo PósgreSQL :: operator

Beside o tipo CAST sintaxe, você pode usar a seguinte sintaxe para converter um valor de um tipo em outro:

Code language: SQL (Structured Query Language) (sql)

Veja o seguinte exemplo:

Code language: SQL (Structured Query Language) (sql)

Note que a sintaxe do operador de elenco (::) é específica do PostgreSQL e não está de acordo com o padrão SQL

Exemplos de CAST do PostgreSQL

Vejamos alguns exemplos de uso do operador CAST para converter um valor de um tipo para outro.

1) Lança uma string para um exemplo inteiro

A seguinte instrução converte uma constante de string para um inteiro:

Code language: SQL (Structured Query Language) (sql)

Se a expressão não puder ser convertida para o tipo alvo, o PostgreSQL irá levantar um erro. Veja o seguinte exemplo:

Code language: SQL (Structured Query Language) (sql)
Code language: PHP (php)

2) Lance uma string para um exemplo de data:

Este exemplo usa o CAST para converter uma string para uma data:

Code language: SQL (Structured Query Language) (sql)

Primeiro, convertemos 2015-01-01 string literal em January 1st 2015. Segundo, convertemos 01-OCT-2015 para October 1st 2015.

3) Lança uma string para um exemplo duplo

No exemplo seguinte, tentamos converter uma string '10.2' num valor duplo:

Code language: SQL (Structured Query Language) (sql)

Quem, recebemos a seguinte mensagem de erro:

Code language: PHP (php)

Para corrigir isto, você precisa usar DOUBLE PRECISION em vez de DOUBLE como se segue:

Code language: SQL (Structured Query Language) (sql)

4) Lança uma string para um exemplo booleano

Este exemplo usa o CAST() para converter a string ‘true’, ‘T’ para true e ‘false’, ‘F’ para false:

Code language: SQL (Structured Query Language) (sql)

Aqui está a saída:

5) Converter uma string para um exemplo de timestamp

Este exemplo usa o operador cast (::) para converter uma string para um timestamp:

Code language: SQL (Structured Query Language) (sql)

6) Converter uma string para um exemplo de intervalo

Este exemplo usa o operador cast para converter uma string para um intervalo:

Code language: SQL (Structured Query Language) (sql)

Aqui está a saída:

7) Usando CAST com exemplo de dados de tabela

Primeiro, crie uma tabela ratings que consiste em duas colunas: id e classificação. O tipo de dados da coluna rating é VARCHAR(1):

Code language: SQL (Structured Query Language) (sql)

Segundo, insira alguns dados de amostra na tabela ratings> tabela.

Code language: SQL (Structured Query Language) (sql)

Porque os requisitos mudam, nós usamos a mesma tabela ratings para armazenar classificações como número, por exemplo, 1, 2, 3 em vez de A, B e C:

Code language: SQL (Structured Query Language) (sql)

Então a tabela ratings armazena valores mistos incluindo numéricos e string.

Code language: SQL (Structured Query Language) (sql)

Agora, temos de converter todos os valores da coluna rating em números inteiros, todas as outras classificações A, B, C serão exibidas como zero. Para fazer isso, você usa a expressão CASE com o tipo CAST como mostrado na seguinte consulta:

Code language: SQL (Structured Query Language) (sql)

A CASE verifica a classificação, se ela corresponder ao padrão inteiro, ela converte a classificação em um número inteiro, caso contrário, retorna 0.

Neste tutorial, você aprendeu como usar o PostgreSQL CAST para converter um valor de um tipo para outro.

  • Este tutorial foi útil ?
  • Sim Não

Deixe uma resposta

O seu endereço de email não será publicado.