Introducere
Când lucrați cu date stocate în PostgreSQL, este posibil să aveți unele date pe care ați prefera să le tratați ca un tip de date diferit. De exemplu, este posibil să aveți o valoare text care reprezintă un număr, cum ar fi „53”. Pentru a efectua calcule pe această valoare, ar putea fi mai logic să convertiți valoarea respectivă într-un număr întreg. În Postgres, funcția CAST
este utilizată pentru a converti tipul de date al unei valori într-un alt tip de date. Valoarea trebuie să fie compatibilă cu tipul de date vizat; în caz contrar, va fi returnată o eroare. În acest articol PostgreSQL, vă vom arăta cum să utilizați funcția PostgreSQL CAST
și vom trece în revistă câteva exemple de diferite conversii.
Precondiții
Înainte de a continua cu acest tutorial, trebuie să existe două condiții cheie:
- Trebuie să aveți PostgreSQL instalat și configurat pe computerul dumneavoastră.
- Trebuie să aveți cunoștințe de bază despre PostgreSQL.
Funcția CAST PostgreSQL
Există două moduri de a CAST
o valoare în PostgreSQL. În prima metodă, specificăm valoarea și tipul de date vizat în interiorul parantezelor din funcția CAST
. Sintaxa este prezentată mai jos:
1
|
SELECT CAST ( VALUE AS TYPE )
|
O altă modalitate de a distribui o valoare este prin utilizarea notației ::
între valoare și tipul de date vizat. Puteți vedea sintaxa de mai jos:
1
|
SELECT VALUE::TYPE
|
În această sintaxă, value
reprezintă valoarea pe care doriți să o distribuiți sau să schimbați tipul de date.type
reprezintă tipul de date pe care îl vizați pentru această valoare; câteva valori posibile ale lui type
includ INTEGER
, FLOAT
și CHAR
.
Exemplu Postgres CAST
Să analizăm câteva exemple de utilizare a funcției CAST
Postgres.
Postgres CAST to String
Pentru primul nostru exemplu, vom transforma o valoare ca valoare de șir de caractere. Putem vedea cum se face acest lucru în următoarea instrucțiune SELECT
:
1
2 3 4 5 |
SELECT CAST( 5137 AS TEXT );
text —— 5137 (1 ROW) |
Postgres CAST to Integer
În continuare, vom converti o valoare de tip text într-un număr întreg. Următoarea instrucțiune arată cum se face acest lucru:
1
2 3 4 5 |
SELECT CAST( ‘214’ AS INTEGER );
int4 —— 214 (1 ROW) |
În exemplul prezentat mai jos, vom cast o valoare întreagă în tipul de date MONEY
. Putem vedea cum funcționează în următoarea instrucțiune:
1
2 3 4 5 5 |
SELECT CAST(7419 AS MONEY);
money ———– $7,419.00 (1 ROW) |
Postgres CAST to Interval
În exemplul următor vom transforma o valoare text în tipul de date INTERVAL
. Următoarea instrucțiune SELECT
arată cum funcționează:
1
2 3 4 5 |
SELECT CAST (‘1 year 2 months 7 days’ AS INTERVAL);INTERVAL
———————- 1 YEAR 2 mons 7 days (1 ROW) |
Postgres CAST to Date
De asemenea, putem folosi funcția CAST
pentru a converti o valoare text într-un tip de date DATE
, așa cum se vede în exemplul de mai jos:
1
2 3 4 5 |
SELECT CAST( ‘July 24, 1999’ AS DATE );
DATE ———— 1999-07-24 (1 ROW) |
Iată o altă modalitate de a CAST
face un text ca dată:
1
2 3 4 5 |
SELECT CAST( ’24-07-99′ AS DATE );
DATE ———— 1999-07-24 (1 ROW) |
Postgres CAST With Trim
În exemplul de mai jos, vom tăia o valoare text, apoi vom face cast-ul rezultatului returnat de TRIM
:
1
2 3 4 5 |
SELECT CAST( TRIM( TRIM( LEADING ‘DATE ‘ FROM ‘DATE January 28, 1998’ ) AS DATE);
ltrim ———— 1998-01-28 (1 ROW) |
Postgres CAST With Concatenation
Potem concatena două sau mai multe șiruri folosind operatorul ||
. În exemplul nostru final, vom concatena o valoare de șir de caractere cu o valoare de dată, care este turnată în TEXT
. Instrucțiunea de mai jos arată cum se face acest lucru:
1
2 3 4 5 |
SELECT ‘The current date is ‘ || CAST( CURRENT_DATE AS TEXT );
?COLUMN?——————————– The CURRENT DATE IS 2020-03-28 (1 ROW) |
Concluzie
Când interogați date în PostgreSQL, este posibil să doriți ca valorile anumitor coloane să fie convertite într-un tip de date diferit. Schimbarea tipului de date poate facilita efectuarea de calcule și operații de procesare a datelor returnate. În acest articol, v-am arătat cum să utilizați funcția Postgres CAST pentru a converti tipul de date al unei valori. Dacă ați urmărit toate exemplele prezentate în acest articol, veți putea utiliza eficient funcția CAST
în propriile dvs. interogări PostgreSQL.
.