2012-12-03 121 views
20

我的數據庫是Postgres 8.我需要將數據類型轉換爲另一個數據類型。這意味着,其中一種列數據類型爲varchar,需要將它與Postgres在SELECT語句中一起投射到int中。Postgres數據類型轉換

目前,我得到字符串值並將其轉換爲Java中的int
有什麼辦法可以做到嗎?示例代碼將受到高度讚賞。

+6

只是FYI,說「PostgreSQL 8」有點像說「Windows 6」。 Windows XP爲5.1(或x64爲5.2),Vista爲6.0,Windows 7爲6.1。他們都非常不同!這與PostgreSQL一樣。 PostgreSQL 8.0和8.4之間有5年的巨大技術差異,所以請始終指定* full *版本。 –

回答

41
cast(varchar_col AS int) -- SQL standard

varchar_col::int   -- Postgres syntax shorthand

論文語法變體是有效的(幾乎)任何地方。除了第二:

有兩個變種:

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

注意我如何寫int4(varchar_col)。這是內部類型名稱,還有一個爲其定義的函數。將不起作用 integer() int()

手冊中的詳細信息herehere

要對integer有效,該字符串必須包含一個可選的前導符號(+/-),後跟數字只。前導/尾隨白色空間被忽略。

+0

如果*列*是*字符*數據類型 –

+0

@AbelMelquiadesCallejo它不起作用:什麼是「它」?上述所有的數據類型都是'字符'(除非明確指出)。當然,該字符串必須是有效的整數。 –