Lançamento de tipos de dados em Postgresql
Conversão de dados é comum em todos os paradigmas de programação, especialmente quando se trata de transações nas bases de dados. Como em outras bases de dados, a base de dados Postgresql fornece operações CAST que permitem a conversão de um tipo de dados em outro. Existem várias operações de fundição no postgresql para conversão de string para inteiros, fundição para booleano, fundição de string para data e vice versa. Este artigo ilustra com exemplos as funções do operador CAST no postgresql. Ao utilizar este operador, a seguinte sintaxe é utilizada:
1
|
CAST (expressão AS target_type );
|
onde a expressão pode ser ou uma constante, uma coluna de tabela, ou uma expressão que avalia para um valor específico. O tipo_alvo é o tipo de dado alvo ao qual nossa expressão resultará após a conversão. Outra versão de fundição no postgresql envolve o uso do operador ::
. A sintaxe, neste caso, é a seguinte:
1
|
Expressão :: type
|
Deixe-nos agora alguns exemplos usando o operador CAST.
>
Calça para fundição de números inteiros
Quando convertemos uma corda em número inteiro, usamos a seguinte expressão
1
2 |
SELECT
CAST (‘500’ AS INTEGER); |
Esta ilustração funde a string do tipo “500” e inteiro do tipo 500. Uma coisa importante a lembrar é que uma conversão bem sucedida ocorre quando o tipo de dado alvo é compatível com a expressão. Usando o exemplo acima, o postgresql passaria por um erro de conversão de tipo quando substituímos a expressão “500” por “a500” uma vez que eles não são compatíveis.
Postgres cast to Boolean
Casting expressions to Boolean converte-os em tipos de dados lógicos. Abaixo está um exemplo que usa a função CAST ( ) para lançar strings, char e expressões inteiras em tipos de dados booleanos.
1
2 3 4 5 6 7 |
SELECT
CAST(‘1’ como BOOLEAN), CAST(‘0’ como BOOLEAN); CAST(‘verdadeiro’ como BOOLEAN), CAST(‘falso’ como BOOLEAN), CAST(‘T’ como BOOLEAN), CAST(‘F’ como BOOLEAN); |
Postgresql carimbo temporal fundido até à data
Obtém-se a data exacta a partir de um carimbo temporal específico usando o Cast :: operador com o carimbo da hora como entrada e adicionando o sufixo ::date:
A sintaxe é a seguinte:
1
|
SELECT expressão ::TIMESTAMP::DATE;
|
Toma um exemplo quando quiseres extrair de ‘2019-07-13 1:20:50′ a ‘2019-07-13’ A nossa consulta de Cast seria:
1
|
SELECT ‘2019-07-13 1:20:50’::TIMESTAMP::DATA;
|
Postgresql fundido de dupla precisão a numérica.
Expressão de precisão dupla leva mais pontos decimais quando comparada com os tipos de dados flutuantes. No caso da memória do processador, os tipos de dupla precisão podem ocupar até 64 bit de memória. Quando se converte de dupla precisão, é bastante semelhante a arredondar a expressão. No entanto, o casting é usado quando queremos obter o resultado exato da expressão. No exemplo abaixo, usaremos o operador de fundição ::
junto com a instrução Select para ilustrar a conversão.
Sintaxe : SELECT (Dupla precisão :: numérica); SELECT (33.135941093 :: numérica);
Uma forma alternativa de fazer isso é usar a função de fundição () como indicado abaixo:
Sintaxe :
SELECT CAST (Dupla precisão como numérico)
1
2 |
SELECT
CAST ( 33.135941093 AS numeric) |
Postgresql Cast string to a date
O exemplo seguinte ilustra a fundição de strings até à data utilizando o comando sql SELECT:
>
1
2 3 |
SELECIONE
CAST (‘2019-07-14’ COMO DATA), CAST (’13-JULHO-2019′ COMO DATA); |
No exemplo, primeiro convertemos a string ‘2019-07-14′ em 14 de Julho de 2019, enquanto na segunda parte convertemos ’13-JULHO-2019’ em 13 de Julho de 2019.
Conclusão
Mostramos-lhe várias técnicas de fundição juntamente com vários exemplos. Esperamos que você tenha achado útil um desses exemplos e seja capaz de aplicar o que aprendeu à sua aplicação específica.
Se você precisar de ajuda para configurar ou gerenciar sua base de dados PostgreSQL, por favor não hesite em contactar-nos no Object Rocket para discutir os detalhes do seu projeto e determinar se podemos ajudar.