cast(varchar_col AS int) -- SQL standard nebo
varchar_col::int -- Postgres syntax shorthand Tyto varianty syntaxe jsou platné (téměř) kdekoli . Druhý může ve zvláštních situacích vyžadovat vnoření závorek:
- PostgreSQL:Vytvořte index podle délky všech polí tabulky
A první může být vyžadován tam, kde omezení syntaxe povoluje pouze funkční zápis:
- PostgreSQL – operátor CAST vs ::na tabulkové funkci LATERAL
Existují další dvě varianty:
int4(varchar_col) -- only works for some type names
int '123' -- must be an untyped, quoted string literal
Všimněte si, jak jsem napsal int4 (varchar_col) . To je interní název typu a je pro něj také definována funkce. Nefungovalo by jako nebo integer() .int()
Všimněte si také, že poslední formulář nefunguje pro pole typy. musí být int[] '{1,2,3}' '{1,2,3}'::int[] nebo cast('{1,2,3}' AS int[]) .
Podrobnosti v návodu zde a zde .
Platí pro integer , řetězec se musí skládat z volitelného znaku na začátku (+ /- ) následované pouze číslicemi. Úvodní/koncové prázdné místo je ignorováno.