sql >> Database >  >> RDS >> PostgreSQL

Postgres gegevenstype cast

cast(varchar_col AS int)  -- SQL standard

of

varchar_col::int          -- Postgres syntax shorthand

Deze syntaxisvarianten zijn (bijna) overal geldig . De tweede kan in speciale situaties nesten van haakjes vereisen:

  • PostgreSQL:maak een index op lengte van alle tabelvelden

En de eerste kan nodig zijn waar alleen functionele notatie is toegestaan ​​door syntaxisbeperkingen:

  • PostgreSQL - CAST vs ::operator op LATERAL tabelfunctie

Er zijn nog twee varianten:

int4(varchar_col)         -- only works for some type names
int '123'                 -- must be an untyped, quoted string literal

Merk op hoe ik int4 . schreef (varchar_col) . Dat is de interne typenaam en er is ook een functie voor gedefinieerd. Zou niet werken als integer() of int() .

Merk ook op dat het laatste formulier niet werkt voor array soorten. int[] '{1,2,3}' moet '{1,2,3}'::int[] . zijn of cast('{1,2,3}' AS int[]) .

Details in de handleiding hier en hier .

Geldig voor integer , moet de tekenreeks bestaan ​​uit een optioneel hoofdteken (+ /- ) alleen gevolgd door cijfers. Voorloop/achtervolging witruimte wordt genegeerd.




  1. 32-bits Excel en 64-bits SQL Server

  2. Hoe MySQL op de juiste manier met UTF-8 omgaat?

  3. Hoe de n-de rij te vinden in MySQL

  4. Hoe voorkomt SQLParameter SQL-injectie?