Postgresql to_number()函数格式

时间:2016-05-18 08:23:33

标签: sql postgresql type-conversion sqldatatypes

我想使用postgresql to_number(numberString, format_mask)。我的numberString可能包含前导零(我不知道这些零的实际长度和numberString总数)。我想修剪这些零并将值作为数字。

我已阅读此功能here,目前正在使用以下格式:

select to_number('00005469', '9999999999')

但是如果'9'的长度小于numberString的长度,那么我就无法得到正确的数字。如果不在format_mask中编写一长串'9',我怎样才能完成这项工作?

3 个答案:

答案 0 :(得分:5)

您不需要to_number()。只需将字符串转换为整数:

select '00005469'::integer;

或使用标准SQL:

select cast('00005469' as integer);

答案 1 :(得分:0)

为了更安全,如果您的列是否有小数,请使用

 select  NULLIF('00005469', '')::decimal

如果有小数,此 select '00005469'::integer; 将不起作用

答案 2 :(得分:-1)

使用这样很简单:

to_number(to_char(yournumber, '99'),'99')