Rezumat: în acest tutorial, vă vom arăta cum să utilizați operatorul PostgreSQL CAST
pentru a converti o valoare de un tip în altul.
Introducere la operatorul PostgreSQL CAST
Există multe cazuri în care doriți să convertiți o valoare de un tip de date în altul. PostgreSQL vă pune la dispoziție operatorul CAST
care vă permite să faceți acest lucru.
În cele ce urmează este ilustrată sintaxa tipului CAST
:
Code language: SQL (Structured Query Language) (sql)
În această sintaxă:
- În primul rând, specificați o expresie care poate fi o constantă, o coloană de tabel, o expresie care se evaluează la o valoare.
- Apoi, specificați tipul de date țintă în care doriți să convertiți rezultatul expresiei.
PostgreSQL type cast :: operator
În afară de sintaxa de tip CAST
, puteți utiliza următoarea sintaxă pentru a converti o valoare de un tip în altul:
Code language: SQL (Structured Query Language) (sql)
Vezi următorul exemplu:
Code language: SQL (Structured Query Language) (sql)
Rețineți că sintaxa cast cu operatorul cast (::) este specifică PostgreSQL și nu este conformă cu standardul SQL
Exemple de CAST PostgreSQL
Să luăm câteva exemple de utilizare a operatorului CAST
pentru a converti o valoare de un tip în alta.
1) Exemplu de transformare a unui șir de caractere într-un întreg
Declarația următoare convertește o constantă de șir de caractere într-un întreg:
Code language: SQL (Structured Query Language) (sql)
Dacă expresia nu poate fi convertită în tipul țintă, PostgreSQL va genera o eroare. A se vedea următorul exemplu:
Code language: SQL (Structured Query Language) (sql)
Code language: PHP (php)
2) Casting a string to a date example
Acest exemplu utilizează CAST
pentru a converti un șir de caractere într-o dată:
Code language: SQL (Structured Query Language) (sql)
În primul rând, am convertit șirul literal 2015-01-01
în January 1st 2015
. În al doilea rând, am convertit 01-OCT-2015
în October 1st 2015
.
3) Cast a string to a double example
În următorul exemplu, încercăm să convertim un șir de caractere '10.2'
într-o valoare dublă:
Code language: SQL (Structured Query Language) (sql)
Hoops, am primit următorul mesaj de eroare:
Code language: PHP (php)
Pentru a remedia acest lucru, trebuie să folosiți DOUBLE PRECISION
în loc de DOUBLE
după cum urmează:
Code language: SQL (Structured Query Language) (sql)
4) Cast a string to a boolean example
Acest exemplu folosește CAST()
pentru a converti șirul ‘true’, ‘T’ în true și ‘false’, ‘F’ în false:
Code language: SQL (Structured Query Language) (sql)
Iată rezultatul:
5) Conversia unui șir de caractere într-un timestamp exemplu
Acest exemplu utilizează operatorul cast (::) pentru a converti un șir de caractere într-un timestamp:
Code language: SQL (Structured Query Language) (sql)
6) Conversia unui șir de caractere într-un interval exemplu
Acest exemplu utilizează operatorul cast pentru a converti un șir de caractere într-un interval:
Code language: SQL (Structured Query Language) (sql)
Iată rezultatul:
7) Utilizarea CAST cu date de tabel exemplu
În primul rând, creați un tabel ratings
care constă din două coloane: id și rating. Tipul de date al coloanei rating
este VARCHAR(1)
:
Code language: SQL (Structured Query Language) (sql)
În al doilea rând, introduceți câteva exemple de date în tabelul ratings
.
Code language: SQL (Structured Query Language) (sql)
Pentru că cerințele se schimbă, folosim același tabel ratings
pentru a stoca ratingurile ca număr, de ex, 1, 2, 3 în loc de A, B și C:
Code language: SQL (Structured Query Language) (sql)
Acum, tabelul ratings
stochează valori mixte, inclusiv valori numerice și șiruri de caractere.
Code language: SQL (Structured Query Language) (sql)
Acum, trebuie să convertim toate valorile din coloana rating
în numere întregi, toate celelalte evaluări A, B, C vor fi afișate ca fiind zero. Pentru a face acest lucru, se utilizează expresia CASE
cu tipul CAST
, așa cum se arată în următoarea interogare:
Code language: SQL (Structured Query Language) (sql)
Expresia CASE
verifică ratingul, dacă se potrivește cu modelul de numere întregi, convertește ratingul într-un număr întreg, în caz contrar, returnează 0.
În acest tutorial, ați învățat cum să utilizați PostgreSQL CAST
pentru a converti o valoare de un tip în altul.
- A fost util acest tutorial?
- DaNu