如何将整数转换为字符串并获取字符串的长度

时间:2014-03-18 10:29:18

标签: postgresql type-conversion

在我的数据库中,有一个last_id类型的字段integer。该表包含多行。我们假设last_id的最大值是104050.现在我想知道这个整数的长度

由于这是不可能的,我试图将其转换为字符串。

SELECT to_char(MAX(last_id),'99') FROM xxxx

我希望使用type = text产生10,但它会返回## type = text。 之后我会使用SELECT char_length(to_char(MAX(last_id),'99')) FROM xxx,它应该返回2 ...

这里出了什么问题?

3 个答案:

答案 0 :(得分:9)

Cast integertext

SELECT length(max(last_id)::text) FROM xxx

答案 1 :(得分:2)

由于您正在处理整数,因此您实际上可以直接找到数字的长度(或数字中的位数)。在数学上,整数中的位数比该数字的基数10的底数多一个。

您可以使用以下内容直接查找长度:

SELECT FLOOR(LOG(MAX(last_id))) + 1 FROM xxxx

答案 2 :(得分:-1)

不要使用postgresql,但在阅读文档之后...像这样的Somthign。

从表

中选择character_length(cast(last_id as varchar(20)))