PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Obsada typu danych Postgres

cast(varchar_col AS int)  -- SQL standard

lub

varchar_col::int          -- Postgres syntax shorthand

Te warianty składni są prawidłowe (prawie) wszędzie . Drugi może wymagać zagnieżdżenia nawiasów w szczególnych sytuacjach:

  • PostgreSQL:Utwórz indeks na podstawie długości wszystkich pól tabeli

A pierwszy może być wymagany, gdy tylko funkcjonalna notacja jest dozwolona przez ograniczenia składni:

  • PostgreSQL — operator CAST vs ::w funkcji tabeli BOCZNEJ

Istnieją jeszcze dwa warianty:

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

Zwróć uwagę, jak napisałem int4 (varchar_col) . To jest nazwa typu wewnętrznego i jest też dla niego zdefiniowana funkcja. Nie działa jako integer() lub int() .

Zwróć też uwagę, że ostatnia forma nie działa dla tablicy typy. int[] '{1,2,3}' musi być '{1,2,3}'::int[] lub cast('{1,2,3}' AS int[]) .

Szczegóły w instrukcji tutaj i tutaj .

Aby być prawidłowym dla integer , ciąg musi składać się z opcjonalnego znaku wiodącego (+ /- ), po których następują tylko cyfry. Początkowe/końcowe białe znaki są ignorowane.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tabele Postgresql istnieją, ale pobieranie relacji nie istnieje podczas wykonywania zapytania

  2. psycopg2.OperationalError:FATAL:nieobsługiwany protokół frontendu 1234.5679:serwer obsługuje 2.0 do 3.0

  3. Zarządzanie PostgreSQL Commitfest

  4. Postgres:wyraźny, ale tylko dla jednej kolumny

  5. Ewolucja tolerancji błędów w PostgreSQL:faza replikacji