Sql 从postgres中的十进制值中删除(.)

Sql 从postgres中的十进制值中删除(.),sql,postgresql,Sql,Postgresql,我想删除。从查询输出的所有十进制值 select(32.00) output should come 3200 select(32.50) output should come 3250 select(32.05) output should come 3205 是否有任何函数提供此输出我不希望3200.00作为输出 如果有人知道,请告诉我怎么做?你可以试试: SELECT replace(CAST(your_field AS text),'.','') FROM your_table 你可

我想删除。从查询输出的所有十进制值

select(32.00) output should come 3200
select(32.50) output should come 3250
select(32.05) output should come 3205
是否有任何函数提供此输出我不希望3200.00作为输出 如果有人知道,请告诉我怎么做?

你可以试试:

SELECT replace(CAST(your_field AS text),'.','')
FROM your_table
你可以试试:

SELECT replace(CAST(your_field AS text),'.','')
FROM your_table

可以乘以100并转换为整数:

=> select cast(32.00*100 as integer);
 int4 
------
 3200
这会给你一个整数。如果您的值不是它们看起来的
十进制(n,2)
,那么您可能希望拉出以明确您所需的舍入或截断:

=> select floor(23.025 * 100), ceil(23.025 * 100), round(23.025 * 100);
 floor | ceil | round 
-------+------+-------
  2302 | 2303 |  2303

可以乘以100并转换为整数:

=> select cast(32.00*100 as integer);
 int4 
------
 3200
这会给你一个整数。如果您的值不是它们看起来的
十进制(n,2)
,那么您可能希望拉出以明确您所需的舍入或截断:

=> select floor(23.025 * 100), ceil(23.025 * 100), round(23.025 * 100);
 floor | ceil | round 
-------+------+-------
  2302 | 2303 |  2303

@穆太短了:这样更好吗?谢谢:)@mu太短了:这样更好吗?谢谢:)如果值为32.001,人们会认为这不起作用,但显然是这样does@ertx:强制转换为int将起作用,但会截断。我添加了几个选项,以防传入的数据不是看起来的
十进制(n,2)
。如果值为32.001,人们可能会认为这不起作用,但显然是这样does@ertx:强制转换为int将起作用,但会截断。我添加了几个选项,以防传入的数据不是看上去的
十进制(n,2)
。您确实应该指定32.05的数据类型。是不是
money
decimal
real
double
,…?您确实应该指定32.05的数据类型。它是不是
货币
十进制
实数
双精度
。。。?