sql >> Database teknologi >  >> RDS >> PostgreSQL

Postgres datatype cast

cast(varchar_col AS int)  -- SQL standard

eller

varchar_col::int          -- Postgres syntax shorthand

Disse syntaksvarianter er gyldige (næsten) hvor som helst . Den anden kan kræve indlejrede parenteser i særlige situationer:

  • PostgreSQL:Opret indeks over længden af ​​alle tabelfelter

Og den første kan være påkrævet, hvor kun funktionel notation er tilladt af syntaksbegrænsninger:

  • PostgreSQL - CAST vs ::operator på LATERAL tabelfunktion

Der er yderligere to varianter:

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

Bemærk, hvordan jeg skrev int4 (varchar_col) . Det er det interne typenavn, og der er også defineret en funktion til det. Ville ikke fungere som integer() eller int() .

Bemærk også, at den sidste formular ikke virker for array typer. int[] '{1,2,3}' skal være '{1,2,3}'::int[] eller cast('{1,2,3}' AS int[]) .

Detaljer i manualen her og her .

Skal være gyldig for heltal , skal strengen bestå af et valgfrit indledende tegn (+ /- ) kun efterfulgt af cifre. Førende/efterstillede mellemrum ignoreres.




  1. Binding af forespørgselsparametre efter navn med ODP.NET

  2. MySQL ATAN() Funktion – Returner buetangensen for en værdi (eller værdier)

  3. Sådan opretter du en bruger og giver tilladelser i Oracle

  4. Få den rigtige del af en streng i SQL Server (T-SQL)