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的数据类型。它是不是货币
,十进制
,实数
,双精度
。。。?