从子串获取整数列

par*_*eau 2 postgresql integer substring

我有一个简单的问题,我怎样才能在整数上使用SUBSTRING?我目前有标记为"StoreID"的字段,其中包含一个5位整数(60008).我在查询此信息时尝试使用SUBSTRING删除6.当我使用类似的东西:

SUBSTRING('StoreID', 2, 6) 我收到一个错误,返回SUBSTRING(integer,integer,integer)说不存在.

我可以在postgres中使用另一个函数来完成我想要做的事情吗?

j.h*_*eck 6

你可以转换整数

SUBSTR(cast (StoreId as text), 2,6)
Run Code Online (Sandbox Code Playgroud)


Erw*_*ter 5

如果您对数字 感兴趣8,请使用模运算符%

SELECT 60008%10000
Run Code Online (Sandbox Code Playgroud)

如果您想要 string '0008',该函数right()适合您(随 Postgres 9.1 添加):

SELECT right(60008::text, -1)
Run Code Online (Sandbox Code Playgroud)

或者用模 和to_char()

SELECT to_char(60008%10000, 'FM0000')
Run Code Online (Sandbox Code Playgroud)

修改FM器删除空格填充。